У меня была эта проблема в течение недели, в которой я не могу использовать команду pip, не получая ту же строку ошибки. Я был не в состоянии связать это с чем-либо, что я нашел в Интернете, и мне не повезло, что я его исправил. Когда я использую команду pip, я получаю эту ошибку.

Traceback (most recent call last):
  File "/usr/local/bin/pip2.7", line 7, in <module>
    from pip._internal import main
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/__init__.py", line 42, in <module>
    from pip._internal import cmdoptions
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cmdoptions.py", line 16, in <module>
    from pip._internal.index import (
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/index.py", line 15, in <module>
    from pip._vendor import html5lib, requests, six
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py", line 86, in <module>
    from pip._vendor.urllib3.contrib import pyopenssl
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/urllib3/contrib/pyopenssl.py", line 46, in <module>
    import OpenSSL.SSL
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/crypto.py", line 13, in <module>
    from cryptography.hazmat.primitives.asymmetric import dsa, rsa
  File "/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py", line 12, in <module>
    @six.add_metaclass(abc.ABCMeta)
AttributeError: 'module' object has no attribute 'add_metaclass'

После нескольких дней поиска я, наконец, зашел в папку python2.7/dist-utils/ и вручную удалил все найденные остатки pip или Python, удалил все ярлыки и файлы кэша и переустановил все это. Около 5 часов все работали очень хорошо, а затем снова возникла ошибка прямо между использованиями pip. Может ли кто-нибудь помочь мне выяснить, что может быть источником этой ошибки. Ниже приведена история команд моих действий, так как проблема началась снова.

sudo python2.7 setup.py install
pip install tldextract
sudo pip install tldextract
sudo pip install isodate
sudo pip install orderddict
sudo pip install ordereddict
sudo pip install backports-abc
sudo pip install pymal --upgrade
sudo python2.7 setup.py install
***This is where the issue started again***
cd Transforms/
cd Domain/
sudo python2.7 spf.py install
sudo pip spf.py 
sudo pip2.7 spf.py 
pip list
sudo pip install pymal -U
sudo pip install pymal -u
sudo pip2.7
sudo pip2.7 dmarc.py 

Обновление Pymal кажется очевидным виновником, я пытался обновить модуль pymal в предыдущие дни, но не смог из-за ошибки meta_class, которая теперь началась снова. Любая помощь приветствуется.

1 ответ1

1

Я нашел ответ на свой вопрос. По-видимому, некоторые версии Linux имеют определенные версии pip и шесть, которые должны быть установлены через менеджер пакетов дистрибутива напрямую, чтобы работать. Существуют некоторые тонкие изменения в том, как Debian использует pip, особенно в отношении обновлений, и они закодировали эти изменения в своем менеджере пакетов, а не в pip. Когда я перекомпилировал Python, я удалил всю структуру Python и пошел к исходным URL-адресам, чтобы рекомбинировать Python и загрузить pip и любые другие зависимости. Я полагал, так как я устанавливал непосредственно из источника, что это будет хорошо ... Если вы используете CentOS, Debian, Redhat и, возможно, другие, то вы должны установить pip из диспетчера пакетов, который управляется вашим дистрибутивом, чтобы избежать появления этой ошибки где-нибудь в будущем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .