我正在尝试制作一个可以自动更新Google Plus电子表格的应用程序。为了做到这一点,我必须设置gspread
,这也需要pyOpenSSL才能工作。如果没有它,它将抛出以下错误:
CryptoUnavailableError:没有可用的加密库
使用pip
,我键入以下命令:
pip install pyopenssl
并使用以下命令导入:
from OpenSSL import SSL
当我尝试运行代码时,我收到以下错误:
ImportError:没有名为cryptography.hazmat.bindings.openssl.binding的模块
我多次尝试重新安装pyOpenSSL,也尝试重新安装加密依赖项(以及尝试安装以前版本的pyOpenSSL)。
这个问题被记录了几次,但我唯一没有尝试的解决方案是重新安装python或操作系统。
有什么建议吗?提前谢谢。
发布于 2016-02-17 02:54:48
那就祝你好运。在Windows上调试ImportError问题不适合胆小鬼。
即使ImportError
引用了cryptography.hazmat.bindings.openssl.binding
,这也不一定是最初的问题。无论出于什么原因,我经常让ImportError
跟踪另一个问题。
我要做的第一件事就是运行
python -v -c "from OpenSSL import SSL"
并捕获输出。查找接近最终错误的任何问题。
它可以是以下其中一种:
pip install
安装,但有时会中断...)我的赌注是最后一点。唯一能帮到我的就是用Dependency Walker打开相关的module.pyd
。通常情况下,一些奇怪的问题(比如发现另一个具有错误架构的DLL )会被证明是原因。
祝好运!
发布于 2016-02-10 13:53:39
这就是我在Ubuntu桌面上解决这个问题的方法。在windows中,您需要找出解决方案,但这个问题的真正原因在Linux和Windows中都是一样的。
Python 14.x+使用基于cffi的加密包,也许这是导致您的问题的原因-cffi需要libffi (或libffi-dev)系统包,这是一个新的非PyOpenSSL依赖。
首先这样做
sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
然后
pip install cryptography
注意这里的关键模块是libffi-dev..我想如果你已经安装了pip,你也可以用pip install
代替apt-get
。
同时,这是文档中提到的关于pyOpenSSL binding
这是一个“危险材料”模块。只有当你百分之百确定你在做什么的时候,你才应该使用它,因为这个模块充满了地雷,龙和雷射枪的恐龙。
我必须说,这是一个相当大胆的警告
https://stackoverflow.com/questions/35232350
复制相似问题