安装依赖项时出现Python Pip错误

时间:2020-02-24 12:34:37

标签: python python-3.x linux pip manjaro

我正在尝试安装以下依赖项:

appdirs==1.4.3
click==6.7
Flask==1.0
itsdangerous==0.24
Jinja2==2.10.1
MarkupSafe==1.0
packaging==16.8
prometheus-client==0.0.19
pyparsing==2.2.0
Werkzeug==0.15.3

但是无论我尝试安装哪个依赖项,都会出现以下错误:

Traceback (most recent call last):
  File "/usr/bin/pip", line 11, in <module>
    load_entry_point('pip==19.3', 'console_scripts', 'pip')()
  File "/usr/lib/python3.8/site-packages/pip/_internal/main.py", line 45, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/usr/lib/python3.8/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "/usr/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 28, in <module>
    from pip._internal.self_outdated_check import (
  File "/usr/lib/python3.8/site-packages/pip/_internal/self_outdated_check.py", line 15, in <module>
    from pip._vendor.six import ensure_binary
ImportError: cannot import name 'ensure_binary' from 'six' (/usr/lib/python3.8/site-packages/six.py)

出了什么问题?

1 个答案:

答案 0 :(得分:0)

在此将答案专门发布给使用Manjaro Linux的人(不建议使用pip,因为如果使用不正确,可能会破坏环境)。它还可能导致后续发行版更新无法无缝发生,并可能导致需要人工干预。

消除环境损害的解决方案是使用:

sudo pacman -Syu python-pkgname --overwrite='*'

其中pkgname是要安装的python依赖项的名称。完成此操作后,应该修复环境,然后不再需要应用--overwrite选项。

整个Python 2和Python 3以及由此产生的pip2和pip3工具分离是疯狂的。