首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正确安装pyOpenSSL for Python (Windows)

正确安装pyOpenSSL for Python (Windows)
EN

Stack Overflow用户
提问于 2016-02-06 03:49:15
回答 2查看 21.1K关注 0票数 7

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

CryptoUnavailableError:没有可用的加密库

使用pip,我键入以下命令:

代码语言:javascript
复制
pip install pyopenssl

并使用以下命令导入:

代码语言:javascript
复制
from OpenSSL import SSL

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

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

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

这个问题被记录了几次,但我唯一没有尝试的解决方案是重新安装python或操作系统。

有什么建议吗?提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-02-17 02:54:48

那就祝你好运。在Windows上调试ImportError问题不适合胆小鬼。

即使ImportError引用了cryptography.hazmat.bindings.openssl.binding,这也不一定是最初的问题。无论出于什么原因,我经常让ImportError跟踪另一个问题。

我要做的第一件事就是运行

python -v -c "from OpenSSL import SSL"

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

它可以是以下其中一种:

  • cffi无法编译绑定(预编译的绑定应已由pip install安装,但有时会中断...)
  • 尝试导入不可用的SSL DLL的绑定(但也应由pip install拉出,但我不太确定这一点)
  • DLL可用但不可加载,因为缺少某些相关DLL,例如可能是visual studio运行时。

我的赌注是最后一点。唯一能帮到我的就是用Dependency Walker打开相关的module.pyd。通常情况下,一些奇怪的问题(比如发现另一个具有错误架构的DLL )会被证明是原因。

祝好运!

票数 2
EN

Stack Overflow用户

发布于 2016-02-10 13:53:39

这就是我在Ubuntu桌面上解决这个问题的方法。在windows中,您需要找出解决方案,但这个问题的真正原因在Linux和Windows中都是一样的。

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

首先这样做

代码语言:javascript
复制
sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

然后

代码语言:javascript
复制
pip install cryptography

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

同时,这是文档中提到的关于pyOpenSSL binding

这是一个“危险材料”模块。只有当你百分之百确定你在做什么的时候,你才应该使用它,因为这个模块充满了地雷,龙和雷射枪的恐龙。

我必须说,这是一个相当大胆的警告

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35232350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档