Сборка PyQt5 под Windows с поддержкой OpenSSL?
Я пытаюсь собрать PyQt5 с поддержкой SSL, но до сих пор не добился успеха вообще.
Что я сделал:
Перестройте Qt с поддержкой OpenSSL: ОК
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
файл, добавив'printsupport'
на QtWebKitWidgets ModuleMetadata:'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
- Выполните описанную выше процедуру, чтобы перестроить Qt с поддержкой OpenSSL + установить SIP + установить PyQt
- копия
ssleay32.dll
,libeay32.dll
а такжеlibssl32.dll
в папку Qt > mingw > bin (C:\Qt\Qt5.3.2\5.3\mingw482_32\bin
в моем случае)
Теперь вы можете увидеть большой True
когда вы делаете QSslSocket.supportsSsl()
тестовое задание.