在具有 OpenSSL 支持的 Windows 上构建 PyQt5?
Posted
技术标签:
【中文标题】在具有 OpenSSL 支持的 Windows 上构建 PyQt5?【英文标题】:Build PyQt5 on Windows with OpenSSL support? 【发布时间】:2014-12-10 02:09:17 【问题描述】:我正在尝试构建具有 SSL 支持的 PyQt5,但是直到现在,我都没有成功。
我做了什么:
使用 OpenSSL 支持重建 Qt:OK
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
URL,但我遇到了很多或 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
提前谢谢你!
【问题讨论】:
【参考方案1】:问题解决了!
-
下载并安装 OpenSSL 的“Light”版本
按照上述步骤重建支持 OpenSSL 的 Qt + 安装 SIP + 安装 PyQt
将
ssleay32.dll
、libeay32.dll
和libssl32.dll
复制到Qt > mingw > bin 文件夹(在我的情况下为C:\Qt\Qt5.3.2\5.3\mingw482_32\bin
)
现在,当您进行QSslSocket.supportsSsl()
测试时,您可以看到一个很大的True
。
【讨论】:
以上是关于在具有 OpenSSL 支持的 Windows 上构建 PyQt5?的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 上的 Apache/PHP 中禁用 OpenSSL 支持