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

Pra*_*165 10 authentication google-app-engine oauth-2.0 python-2.7 gspread

CryptoUnavailableError:没有可用的加密库,并且从oauth2client导入加密失败。

我在链接中提到了上述错误。我能够通过重新安装pyOpenSSL和加密来解决此问题。但是现在出现了以下错误。

ImportError: No module named cryptography.hazmat.bindings._openssl
Run Code Online (Sandbox Code Playgroud)

_openssl是Unix可执行文件(_openssl.so)。以下是导入声明

from cryptography.hazmat.bindings._openssl import ffi, lib
Run Code Online (Sandbox Code Playgroud)

上面的代码在加密模块中的bindings.py中。这些都使用oauth2client链接到gspread身份验证。请帮帮我。我为此苦苦挣扎。

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

小智 13

新版本(23.0.0)OpenSSL出现错误,请执行以下操作:

pip uninstall pyopenssl
pip install pyopenssl==22.1.0
Run Code Online (Sandbox Code Playgroud)


小智 6

我终于明白了。它为我工作:

pip uninstall pyopenssl
pip uninstall cryptography
pip install pyopenssl
pip install cryptography
Run Code Online (Sandbox Code Playgroud)

  • 为我工作。这里显示的是一个简短的版本“pip install pyopenssl cryptography --upgrade” (3认同)

rix*_*rix 5

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

/opt/eff.org/certbot/venv/local/bin/pip install cryptography interface
Run Code Online (Sandbox Code Playgroud)


Pra*_*165 -4

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

在按照我的方法之前,请确保 /Library/Python/2.7/site-packages 和 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib 中的 Six.py 版本为 1.9.0 /Python

即使你按照我的方式,也请执行上述操作。

我实在是太绝望了,所以我重新安装了操作系统。我做出这个决定是因为生产中的相同代码可以工作,但在开发中却不起作用。我理解它的一些依赖错误。

  • 我不认为“重新安装操作系统”可以成为任何问题的可接受答案。好的,也许是 Windows 更新错误问题。 (14认同)