简体   繁体   English

Pyside:Windows 7上未解决的功能错误消息

[英]Pyside: Unresolved Functions error messages on windows7

I tried to run a simple program that is written in python with PySide module to take screenshots of the websites. 我试图运行一个用PySide模块用python编写的简单程序来截取网站的屏幕截图。 I'm running this program on a Windows 7 with OpenSSL(already installed). 我正在具有OpenSSL(已安装)的Windows 7上运行此程序。

I got the following errors: 我收到以下错误:

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

I by no means take credit for this solution as I did a simple google search and came across http://codeblog.vurdalakov.net/2009/11/solution-qsslsocket-cannot-call.html 我绝不相信此解决方案,因为我做了一个简单的Google搜索并遇到了http://codeblog.vurdalakov.net/2009/11/solution-qsslsocket-cannot-call.html

I believe the errors are a little different due to changes within the libraries. 我相信由于库中的更改,错误会有所不同。

Problem 问题

When you try to open a HTTPS URL with QSslSocket or QNetworkAccessManager class, you get the following errors: 当您尝试使用QSslSocketQNetworkAccessManager类打开HTTPS URL时, QSslSocket以下错误:

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

Solution

You need to install OpenSSL Win32 or Win64 binaries. 您需要安装OpenSSL Win32或Win64二进制文件。

  1. Open Win32 OpenSSL Installation Project page. 打开“ Win32 OpenSSL安装项目”页面。
  2. Download the latest "light" Win32 or Win64 installation package, for example "Win32 OpenSSL v0.9.8l Light". 下载最新的“ light” Win32或Win64安装软件包,例如“ Win32 OpenSSL v0.9.8l Light”。
  3. Install it to any location. 将其安装到任何位置。 Ignore "Microsoft Visual C++ 2008 Redistributables" warning (click OK) and select copying OpenSSL DLLs to "The OpenSSL binaries (\\bin) directory". 忽略“ Microsoft Visual C ++ 2008可再发行文件”警告(单击“确定”),然后选择将OpenSSL DLL复制到“ The OpenSSL Binaries(\\ bin)目录”。
  4. Copy libeay32.dll and ssleay32.dll from the \\bin folder to the same place where your QtNetwork4.dll or QtNetworkd4.dll is located. 将\\ bin文件夹中的libeay32.dllssleay32.dll复制到QtNetwork4.dllQtNetworkd4.dll所在的位置。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM