модуль «lib» не имеет атрибута «X509_V_FLAG_CB_ISSUER_CHECK»
Я использовал python 3.6 на своей машине с Ubuntu и столкнулся с этой ошибкой при проведении некоторых тестов:
CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release.
...
from OpenSSL import crypto, SSL
default: File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1550, in <module>
default: class X509StoreFlags(object):
default: File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1570, in X509StoreFlags
default: CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
default: AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
Изучил ошибку. Поэтому я установил python 3.9, а затем обновил альтернативы, чтобы назначить python 3.9 в качестве основного используемого python. Затем я переустанавливаю и обновляю OpenSSL и криптографию.
sudo pip3 install pyOpenSSL --upgrade
sudo pip3 install cryptography --upgrade
Я снова запускаю тестирование и все еще сталкиваюсь с той же ошибкой.
Я решил проверить папку dist-packages python3.9 (/usr/local/lib/python3.9/dist-packages/) и понял, что OpenSSL и криптография нигде не найдены. Вместо этого они находятся в /usr/local/lib/python3.6/dist-packages/. Может из-за этого ошибка сохраняется?
13 ответов
я столкнулся с этим с
pyOpenSSL==19.0.0
и смог исправить это с помощью
pip3 install pyOpenSSL --upgrade
Кажется, это связано с обновлением pip 22.2.2. Проверьте, можете ли вы обновить pyOpenSSL до версии 22.0.0, чтобы устранить проблему.
Дайте мне знать, если это не работает.
У меня была такая же проблема и
sudo apt remove python3-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
исправил это для меня
Мой пип перестал работать из-за проблемы (я даже не смог получить версию).
Я решил эту проблему, загрузив проблемный пакет с pypi.org и обновив его через модуль easy_install :
python3 -m easy_install pyOpenSSL-22.0.0-py2.py3-none-any.whl
После обновления криптографии до версии 38.0.1 команда pip полностью сломалась в моей системе Linux, я никак не мог это исправить. Я смог решить проблему, только удалив строку
"CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK"
из файла /usr/lib/python3/dist-packages/OpenSSL/crypto.py
Ура! После этого pip снова заработал, и я смог понизить криптографию до версии, совместимой с pyOpenSSL==20.0.1:
pip удалить криптографию
pip install --upgrade криптография ==36.0.2
Была такая же ошибка. Обновлен пакет pyOpenSSL до версии 22.0.0. Теперь работает нормально.
pyOpenSSL
< 22.0.0 кажется несовместимым, так как они не закрепили пакет. С момента последнего
cryptography
пакет был установлен в версии до 22.0.0, они просто ломаются.
Соответствующая проблема Github: https://github.com/pyca/pyopenssl/issues/1143
Предупреждение!!!если вы используете pyOpenSSL==20.0.1 и обнаруживаете эту ошибку при создании нового образа контейнера. Обновление до pyOpenSSL==22.0.0 может решить эту проблему, но может увеличить нагрузку на ЦП. Это приводит к потере 50% запросов в секунду для нашей системы, в которой работает система запросов и загрузки с большой нагрузкой.
Наконец, мы откатываем pyOpenSSL==22.0.0 до pyOpenSSL==20.0.1 и вручную устанавливаем cryptography==36.0.2, чтобы решить проблему.
Я исправил это, удалив каталог пакета python openSSL.
sudo rm -R /usr/lib/python3/dist-packages/OpenSSL
Затем просто установите библиотеку OpenSSL еще раз.
pip3 install pyOpenSSL --upgrade
Обратите внимание: когда я говорю «в какой ситуации мы сейчас находимся», я имею в виду тот факт, что каждый выпуск pyOpenSSL до версии 22.0.0 несовместим с версиями криптографии от 38.0.0, но pip этого не знает, поэтому не может правильно решить проблему зависимости.
https://github.com/pyca/pyopenssl/issues/1143#issuecomment-1246086105
В моем случае в моей Ubuntu 20.04 установлена версия pyOpenSSL 19.0.0, а версия криптографии — 38.0.3.
Во- первых, закомментируйте строку ниже/usr/lib/python3/dist-packages/OpenSSL/crypto.py
CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
Затем запустите приведенные ниже команды, чтобы обновить pip3 и pyopenssl.
pip3 install pip --upgrade
pip3 install pyopenssl --upgrade
Наконец, раскомментируйте строку в первом шаге. Теперь вы сможете использовать pip3
У меня была такая же проблема. Когда это происходит, я видел такой журнал.
Oct 26 00:59:45 d51307 certbot[4185368]: from OpenSSL import crypto, SSL
Oct 26 00:59:45 d51307 certbot[4185368]: File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1553, in <module>
Oct 26 00:59:45 d51307 certbot[4185368]: class X509StoreFlags(object):
Oct 26 00:59:45 d51307 certbot[4185368]: File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1573, in X509StoreFlags
Oct 26 00:59:45 d51307 certbot[4185368]: CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
Oct 26 00:59:45 d51307 certbot[4185368]: AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
Oct 26 00:59:45 d51307 systemd[1]: certbot.service: Main process exited, code=exited, status=1/FAILURE
Тогда я пытаюсьapt remove python3-pip
иapt install python3-pip
и мне помогает. Тогда я бегуcertbot
и это работает
Мне удалось решить эту проблему, понизив библиотеку криптографии с помощью следующей команды.
pip установить криптографию ==36.0.0