Ошибка Pip / Python six.add_metaclass

372
Greg

У меня была эта проблема в течение недели, в которой я не могу использовать команду 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, которая теперь началась снова. Любая помощь приветствуется.

0

1 ответ на вопрос

0
Greg

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