正确安装Python的pyOpenSSL(Windows)

我正在尝试制作自动更新Google Plus电子表格的应用程序。 为了做到这一点,我不得不设置gspread ,这也需要pyOpenSSL才能工作。 没有它,它会抛出这个错误:

CryptoUnavailableError:没有可用的encryption库

使用pip ,我input命令:

 pip install pyopenssl 

并使用导入:

 from OpenSSL import SSL 

当我尝试运行代码时,收到以下错误:

ImportError:没有名为cryptography.hazmat.bindings.openssl.binding的模块

我已经尝试重新安装pyOpenSSL多次,也尝试重新安装密码依赖(以及试图安装pyOpenSSL以前的版本)。

这个问题logging了几次,但唯一的解决scheme,我没有尝试是做一个全新的安装python,或操作系统。

有什么build议么? 提前致谢。

这是我在我的Ubuntu桌面解决它。 在Windows中,您需要找出解决方案,但在Linux和Windows中,这个问题的真正原因是相同的

PyOpenSSL 14.x +使用基于cffi的加密包,也许这是你的问题的一个原因 – cffi需要libffi(或者libffi-dev)系统包,这是一个新的非Python依赖。

首先做这个

 sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev 

接着

 pip install cryptography 

注意这里的关键模块是libffi-dev ..我认为,而不是apt-get ,你也可以使用pip install如果你已经安装了pip

同时这是关于pyOpenSSL绑定的文档

这是“有害物质”模块。 如果你完全确信你知道你在做什么,你应该只使用它,因为这个模块里充满了地雷,龙,还有带有激光枪的恐龙。

我必须说这是一个非常大胆的警告

祝你好运。 在Windows上调试ImportError问题并不是一件容易的事情。

尽管ImportError引用了cryptography.hazmat.bindings.openssl.binding但这并不是最初的问题。 出于任何原因,我经常会ImportError影响另一个问题。

我会尝试的第一件事就是跑步

python -v -c "from OpenSSL import SSL"

并捕获输出。 寻找接近最终错误的任何问题。

它可能是下列之一:

  • cffi无法编译绑定(预编译的绑定应该已经通过pip install ,但有时东西打破…)
  • 绑定尝试导入不可用的SSL DLL(但也应该通过PIP安装,但我不太确定)
  • 该DLL可用,但不能加载,因为一些依赖的DLL丢失,可能是Visual Studio运行时。

我的赌注是最后一点。 唯一能帮助我的是用Dependency Walker打开相关的module.pyd 。 往往不是一些奇怪的问题(如另一个DLL被发现与错误的架构)将成为原因。

祝你好运!