ImportError: No module named cryptography.hazmat.bindings._openssl

ImportError: No module named cryptography.hazmat.bindings._openssl

CryptoUnavailableError: No crypto library available and from oauth2client import crypt failure.

我遇到了link中提到的上述错误。我能够通过重新安装 pyOpenSSL 和密码学来解决这个问题。但是现在出现了下面的错误。

ImportError: No module named cryptography.hazmat.bindings._openssl

这里的_openssl是一个unix可执行文件(_openssl.so)。以下是导入语句

from cryptography.hazmat.bindings._openssl import ffi, lib

以上代码在密码学模块bindings.py中。这些都是 linked 以使用 oauth2client 进行 gspread 身份验证。请帮帮我。我正在为此苦苦挣扎。

更新: 该问题是由某些依赖项失败引起的。我无法找到依赖项失败的位置。从顶部重新安装所有库。这样就解决了问题。

您应该在项目的根路径中手动添加加密源。

https://github.com/pyca/cryptography/tree/master/src

此问题是由某些依赖项失败引起的。我无法找到依赖项失败的位置。从顶部重新安装所有库。这样就解决了问题。

这个答案可能看起来很蹩脚,但这对我来说很有效。我实际上重新安装了os。这样它就删除了我之前安装的所有其他库。 ose 库之一可能是罪魁祸首,它干扰了加密文件和 openssl。我无法追溯是哪个 module/library 导致了上述错误。 重新安装 OS 后,我继续安装 cyptography 和 openssl,使用您在出现此错误之前可能已经完成的链接。

在按照我的方法进行操作之前,请确保 six.py 在 /Library/Python/2.7/site-packages 和 /System/Library/Frameworks/Python.[=21= 中的版本均为 1.9.0 ].7/Extras/lib/python

即使你按照我的方式,也照上面的做。

我非常绝望,以至于我重新安装了 os。我做出这个决定是因为生产中的相同代码在开发时不起作用。我了解它的一些依赖性错误。

这个我遇到过problem.First,我安装的是OpenSSL,然后把include的OpenSSL文件夹里的内容复制到Microsoft Visual C++ Compiler for [=16=的编译器里面] 2.7\vc\include,将lib的内容copy到Python安装目录里面的libs,调整opensll环境变量为git,执行openssl中的cmd时应该定位到OpenSSL重新安装directory.Uninstall加密,然后重新安装,我的问题解决了!!

我下载了文件cryptography-2.0.3-cp36-cp36m-win_amd64.whl

和运行:

pip install C:/User/Download/cryptography-2.0.3-cp36-cp36m-win_amd64.whl

然后就解决了

通过 venv 安装它为我修复了它:

/opt/eff.org/certbot/venv/local/bin/pip install cryptography interface

只需转到 /opt/eff.org/certbot/venv/local/lib64/python2.7 并在同一文件夹中创建 dist-packagessite-packages 的 link。如果 site-packages 已经存在,您需要重命名它。 喜欢

  1. rm -rf site-packages
  2. ln -s dist-packages site-packages

我终于明白了。它对我有用:

pip uninstall pyopenssl
pip uninstall cryptography
pip install pyopenssl
pip install cryptography

我在为Anaconda3安装Scrapy时遇到了同样的问题

我认为实际安装 Twisted 破坏了这个。由于此消息,任何使用 pip/conda 的尝试都失败了。

看到上面zhangzhy2000的命题,a但是安装失败

实际发生了什么,曾经有 Python 模块来处理 SSL,但 它被删除了 。现在(在升级 Scrapy / Twisted 的一些依赖项之后)Anaconda 依赖 OS 来处理 SSL。

对于 Windows 10 64 位,我是这样做的:

  1. 我安装了 sasl-0.2.1-cp37-cp37m-win_amd64.whl(来自 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame)。这实际上对我没有帮助。

  2. 我安装了 Win64OpenSSL-1_1_1b.exe - 打开 SSL(来自 https://slproweb.com/products/Win32OpenSSL.html

  3. 我 运行 pip3 install pyopenssl==19.0.0 为我安装 pyopenssl 和密码学。

(然后我安装了这里无关紧要的twisted和scrapy)

我想重申,对 SSL 的支持已从 Python 中删除,现在它依赖于 OS,因此 OS 特定于 SSL 的软件包应该安装。

另一种解决方法:

apk add --no-cache py-cryptography

感谢https://github.com/pyca/cryptography/issues/4264#issuecomment-392849235

这对我有用,否则 zope 和密码学一直显示相互安装的依赖性导致死锁

sudo /opt/eff.org/certbot/venv/local/bin/pip install cryptography interface zope

通过https://github.com/certbot/certbot/issues/2544#issuecomment-505196160

我在 Mac 上的 virtualenv 中遇到了类似的问题。我听从了 from zhangzhy2000 的建议,但我还需要卸载并重新安装 pyasn1

这给我留下了这些步骤

cd ~/.virtualenvs/my-virtual-env/bin
source activate
pip uninstall pyopenssl
pip uninstall cryptography
pip uninstall pyasn1
pip install pyopenssl
pip install cryptography
pip install pyasn1