我正在尝试制作自动更新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"
并捕获输出。 寻找接近最终错误的任何问题。
它可能是下列之一:
pip install
,但有时东西打破…) 我的赌注是最后一点。 唯一能帮助我的是用Dependency Walker打开相关的module.pyd
。 往往不是一些奇怪的问题(如另一个DLL被发现与错误的架构)将成为原因。
祝你好运!