2013-01-08 35 views
1

我試圖運行一個簡單的程序,該程序使用PySide模塊編寫,以獲取網站的屏幕截圖。我正在使用OpenSSL(已安裝)在Windows 7上運行此程序。Pyside:Windows7上未解決的函數錯誤消息

我得到了以下錯誤:

QSslSocket: cannot call unresolved function SSLv3_client_method 
QSslSocket: cannot call unresolved function SSL_CTX_new 
QSslSocket: cannot call unresolved function SSL_library_init 
QSslSocket: cannot call unresolved function ERR_get_error 

回答

0

我絕不居功這個解決方案,因爲我做了一個簡單的谷歌搜索和跨 http://codeblog.vurdalakov.net/2009/11/solution-qsslsocket-cannot-call.html

來到我相信錯誤有一點不同由於圖書館內的變化。

問題

當你試圖打開一個HTTPS URL與QSslSocketQNetworkAccessManager類,您會收到以下錯誤:

QSslSocket: cannot call unresolved function SSLv3_client_method 
QSslSocket: cannot call unresolved function SSL_CTX_new 
QSslSocket: cannot call unresolved function ERR_get_error 
QSslSocket: cannot call unresolved function ERR_error_string 

解決方案

您需要安裝的OpenSSL的Win32或Win64的二進制文件。

  1. 打開Win32 OpenSSL安裝項目頁面。
  2. 下載最新的「light」Win32或Win64安裝包,例如「Win32 OpenSSL v0.9.8l Light」。
  3. 將它安裝到任何位置。忽略「Microsoft Visual C++ 2008 Redistributables」警告(單擊確定)並選擇將OpenSSL DLL複製到「OpenSSL二進制文件(\ bin)目錄」。
  4. libeay32.dllssleay32.dll從\ bin文件夾複製到您的QtNetwork4.dllQtNetworkd4.dll所在的相同位置。
+0

嗨mattwritescode,我遵循相同的步驟。我已安裝Win32OpenSSL_Light-1_0_1c.exe並將libeay32.dll和ssleay32.dll從\ bin文件夾複製到Python27 \ Lib \ site-packages \ PySide文件夾中。但仍然可以看到相同的錯誤信息 – AGR

+0

路徑是否正確?並讓你重新啓動你的機器? –

+0

是的,我已經重新啓動我的電腦,我試圖運行我的腳本我有同樣的錯誤,我已經複製(libeay32.dll和ssleay32.dll)文件到這兩個地方 C:\ Python27 \ Lib \ site-packages \ PySide和C :\ Python27 \ Lib \ site-packages \ PySide-1.0.1qt472-py2.7-win32.egg \ PySide \實際上我在這些目錄中有QtNetwork4.dll文件,所以我在這裏複製 – AGR