0

几天前我在使用 pip (1,2 or 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 系统并且没有任何值得注意的问题,我还使用 pip3 install --update 更新了一些 pip 模块,我相信我更新的模块是 scapy 并且请求我我无法将 pip 用于我尝试过的任何命令,甚至是“pip list”或任何版本的 pip 到 3.6。我已经卸载并重新安装了 pip、virtualenv,并尝试从我的 distutils 文件夹中手动删除 Six.add_metaclass-1.0* 文件夹。我尝试过的任何事情都没有产生任何我能看到的变化,而且我无法缩小我看到的任何问题确实与这个特定问题相似或相关的范围。

4

2 回答 2

0

6 1.3.0没有add_metaclass。它于 2013 年发布。真的是时候升级了。

于 2018-06-13T00:12:58.757 回答
-1

我找到了我的问题的答案。显然,某些 linux 版本具有特定版本的 pip 和六个必须通过发行包管理器直接安装才能工作。Debian 如何使用 pip 有一些细微的变化,特别是关于更新,他们已经将这些变化编码到他们的包管理器中,而不是 pip。当我重新编译 Python 时,我已经卸载了整个 Python 框架,然后我去源 URL 重新组合 Python 并下载 pip 和任何其他依赖项。我想,因为我是直接从源代码安装的,所以没问题...如果您使用的是 CentOS、Debian、Redhat 以及其他可能,那么您必须从发行版管理的软件包管理器中安装 pip 以避免在某处遇到此错误。

于 2018-07-15T22:33:19.860 回答