无论我尝试通过 pip3 install 安装什么模块,我总是遇到相同的错误:
AttributeError: module 'lib' has no attribute 'X509_up_ref'
不知道如何解决这个问题。以前有人遇到过这个问题吗?
gabriel@E1-522:~$ pip3 install ipaddress
Collecting ipaddress
From cffi callback <function _verify_callback at 0x7f0d2e0419d8>:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/OpenSSL/SSL.py", line 313,
in wrapper
_lib.X509_up_ref(x509)
AttributeError: module 'lib' has no attribute 'X509_up_ref'
Could not find a version that satisfies the requirement ipaddress
(from versions: )
No matching distribution found for ipaddress
尝试安装不同的模块时出现相同的错误:
gabriel@E1-522:~$ pip3 install cryptography
Collecting cryptography
From cffi callback <function _verify_callback at 0x7fd515d659d8>:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/OpenSSL/SSL.py", line 313, in wrapper
_lib.X509_up_ref(x509)
AttributeError: module 'lib' has no attribute 'X509_up_ref'
Could not find a version that satisfies the requirement cryptography
(from versions: )
No matching distribution found for cryptography
我运行 Ubuntu 17.10 。我有 python 2.7 和 3.6
谢谢。
答案1
我尝试运行sudo /usr/bin/certbot renew
,但失败并出现 X509_up_ref 错误。这解决了我的问题。
sudo pip install pyOpenSSL --upgrade
当你在使用加密模块时,可能不会有什么坏处。
sudo pip install cryptography --upgrade
我认为这就是@hoefling 早些时候想要表达的意思,但我有点慢,必须把它拼写出来才能得到它。正如他指出的那样,双方都需要与时俱进才能相处融洽。 certbot renew 命令在升级后立即生效。
答案2
这就是为我解决的问题:
作为 Debian 上的 root:
apt remove python3-openssl -y
apt autoremove
确保/usr/local/lib/python3.5/dist-packages/OpenSSL/SSL.py
已将其删除。
apt install python3-openssl -y
然后,pip3
又可以安装了,从此我过上了幸福的生活。
答案3
我尝试了 apt remove 命令,但它没有为我解决问题。但是,我们同时安装了 pip 和 pip3。所以下面的顺序是为我解决的:
pip install -U cryptography;
sudo apt remove python3-openssl -y;
sudo apt autoremove;
pip3 install -U cryptography;