我尝试使用SSL支持构建PyQt5,但到目前为止,我根本没有成功。
我做了什么:
使用OpenSSL支持重建Qt:确定
configure.exe -static -debug-and-release -opensource -confirm-license -nomake examples -nomake tests -opengl desktop -platform win32-g++ -openssl-linked OPENSSL_LIBS="-lssleay32 -llibeay32" -I C:\OpenSSL-Win32\include -L C:\OpenSSL-Win32\lib
mingw32-make
安装SIP:确定
python configure.py -p win32-g++
mingw32-make
mingw32-make install
安装PyQt5:确定
python configure.py --spec=win32-g++
mingw32-make
mingw32-make install
编辑configure.py
文件,在QtWebKitWidgets ModuleMetadata上添加'printsupport'
:
'QtWebKitWidgets': ModuleMetadata(qmake_QT=['webkitwidgets', 'printsupport']),
而不是
'QtWebKitWidgets': ModuleMetadata(qmake_QT=['webkitwidgets']),
在mingw32-make
之后(或之前?),删除行
-strip C:$(INSTALL_ROOT)\Python34\pyuic5.bat
来自目标install_pyuic5
:
测试:不行
>>> from PyQt5.QtNetwork import QSslSocket
>>> QSslSocket.supportsSsl()
False
所以,我的问题是:
为什么我要问......如果一切都是好的",我尝试访问(使用QWebview)一些https
网址,而我&#39 ; m得到很多或SSL错误,例如:
QSslSocket: cannot call unresolved function SSLv23_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 :(得分:1)
问题解决了!
ssleay32.dll
,libeay32.dll
和libssl32.dll
复制到Qt> mingw> bin文件夹(在我的情况下为C:\Qt\Qt5.3.2\5.3\mingw482_32\bin
)现在,当您进行True
测试时,您可以看到一个很大的QSslSocket.supportsSsl()
。