Pip/Python six.add_metaclass 错误

Pip/Python six.add_metaclass 错误

这个问题我已经出现大约一周了,无论以何种方式使用 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

我找到了问题的答案。显然,某些 Linux 版本具有特定版本的 pip 和 six,必须通过发行版包管理器直接安装才能工作。Debian 使用 pip 的方式有一些细微的变化,特别是在更新方面,他们将这些变化编码到他们的包管理器中而不是 pip 中。当我重新编译 Python 时,我卸载了整个 python 框架,然后我转到源 URL 重新组合 python 并下载 pip 和任何其他依赖项。我想既然我是直接从源代码安装的,那就没问题了……如果您使用的是 CentOS、Debian、Redhat 和其他版本,那么您必须从发行版管理的包管理器安装 pip,以避免在以后的某个地方遇到此错误。

相关内容