PySide2 «Не удалось инициализировать TLS» или Куда поместить OpenSSL dll? - PullRequest
0 голосов
/ 03 января 2019

Я использую PySide2 и QML.У меня есть элемент Image в моем файле qml, и всякий раз, когда я пытаюсь загрузить URL-адрес https в этом элементе изображения, я получаю следующую ошибку: QSslSocket::connectToHostEncrypted: TLS initialization failed

Я нахожусь в Windows, и после поиска в Интернете для этогоОшибка было предложено поместить DLL OpenSSL рядом с исполняемым файлом при использовании vanilla Qt.Проблема в том, что я использую Python, и я не знаю, где PySide2 ищет эти библиотеки.

Любая помощь будет принята.

Вот мой элемент изображения QML:

Image {
    id: image
    height: parent.height - 5
    width: parent.width - 5
    source: url
    sourceSize.width: image.width
    sourceSize.height: image.height
    asynchronous: true
    fillMode: Image.PreserveAspectFit
}

url - это роль в модели на стороне Python, которая используется совместно с QML с использованием метода setContextProperty.Модель заполняется URL-адресами изображений из Reddit.

1 Ответ

0 голосов
/ 05 апреля 2019

Загрузите версию OpenSSL, совместимую с версией, которая используется для сборки версии Qt, которую вы установили.Убедитесь, что вы поместили его там, где время выполнения Qt может видеть ваше приложение.

Примечание Версия OpenSSL 1.0 не обратно совместима с 1.1

Если вы установили Qt с помощью предварительно сконфигурированного установщика, то проверьте версию, предварительно собранную с версией, например, OpenSSL v1.1 поставляется с Qt 5.12

...