Ошибка Pip six.add_metaclass - PullRequest
       50

Ошибка Pip six.add_metaclass

0 голосов
/ 12 июня 2018

Несколько дней назад я начал получать следующую ошибку при использовании pip (1,2 или 3) для установки.

*

Traceback (most recent call last):   File "/home/c4pta1n/.local/bin/pip", line 7, in <module>
    from pip._internal import main   File "/home/c4pta1n/.local/lib/python2.7/site-packages/pip/_internal/__init__.py", line 42, in <module>
    from pip._internal import cmdoptions   File "/home/c4pta1n/.local/lib/python2.7/site-packages/pip/_internal/cmdoptions.py", line 16, in <module>
    from pip._internal.index import (   File "/home/c4pta1n/.local/lib/python2.7/site-packages/pip/_internal/index.py", line 15, in <module>
    from pip._vendor import html5lib, requests, six   File "/home/c4pta1n/.local/lib/python2.7/site-packages/pip/_vendor/requests/__init__.py", line 86, in <module>
    from pip._vendor.urllib3.contrib import pyopenssl   File "/home/c4pta1n/.local/lib/python2.7/site-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'

*

pip3 install pip --ignore-installed six
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 11, in <module>
    load_entry_point('pip==10.0.1', 'console_scripts', 'pip3')()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 476, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2700, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2318, in load
    return self.resolve()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2324, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  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'

Я исследовал и пытался устранить эту проблему, но мне не удалось сузить проблему.Незадолго до того, как я обратил внимание на эту проблему, я обновил свою систему Debian с использованием стандартного репозитория, и у меня не было проблем с примечанием. Я также обновил несколько модулей pip с помощью pip3 install --update, я думаю, что модули, которые я обновил, были scapy и запросы, которые яя не могу использовать pip для любой команды, которую я пробовал, даже для "pip list" или любой версии pip через 3.6.Я удалил и переустановил pip, virtualenv и попытался вручную удалить папку six.add_metaclass-1.0 * из папки distutils.Ничто из того, что я пробовал, не привело к каким-либо изменениям, которые я вижу, и я не могу сузить, что любая проблема, о которой я пишу, действительно похожа или связана с этой конкретной проблемой.Я надеюсь найти помощь, чтобы сузить эту проблему, исправить ее или указать любую информацию, которая может мне помочь.

Ответы [ 2 ]

0 голосов
/ 16 июля 2018

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

0 голосов
/ 13 июня 2018

шесть 1.3.0 не имеют add_metaclass.Был выпущен в 2013 году.Действительно время обновить его.

...