我正在尝试制作一个自动更新 Google Plus 电子表格的应用程序。为此,我必须设置 gspread
,这也需要 pyOpenSSL 才能工作。没有它,它会抛出这个错误:
CryptoUnavailableError: No crypto library available
使用 pip
,我输入命令:
pip install pyopenssl
并导入使用:
from OpenSSL import SSL
当我尝试运行代码时,收到以下错误:
ImportError: No module named cryptography.hazmat.bindings.openssl.binding
我已经多次尝试重新安装 pyOpenSSL,还尝试重新安装加密依赖项(以及尝试安装以前版本的 pyOpenSSL)。
这个问题被记录了几次,但我没有尝试过的唯一解决方案是重新安装 python 或操作系统。
有什么建议吗?提前致谢。
最佳答案
祝你好运。在 Windows 上调试 ImportError 问题不适合胆小的人。
尽管 ImportError
指的是 cryptography.hazmat.bindings.openssl.binding
这不一定是原始问题。无论出于何种原因,我经常有 ImportError
掩盖另一个问题。
我会尝试的第一件事是运行
python -v -c "从 OpenSSL 导入 SSL"
并捕获输出。寻找接近最终错误的任何问题。
可以是以下之一:
- cffi 未能编译绑定(bind)(预编译的绑定(bind)应该已通过
pip install
安装,但有时会出现问题...) - 尝试导入不可用的 SSL DLL 的绑定(bind)(但也应该由 pip install 提取,但我不太确定)
- DLL 可用但不可加载,因为缺少某些相关的 DLL,例如 visual studio 运行时。
我敢打赌最后一点。唯一对我有帮助的是用 Dependency Walker 打开相关的 module.pyd
.原因往往是一些奇怪的问题(比如发现另一个 DLL 的架构错误)。
祝你好运!
关于python - 为 Python (Windows) 正确安装 pyOpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35232350/