如何将 pip 升级到版本 >> 9.0.1 ?(pip install --upgrade pip 给出“无法导入名称 main”错误)

Cha*_*Kim 2 upgrade python apt pip

我安装了 pip 8.1,并且想升级到 > 9.0.1(为 python 2.7 安装 matplotlib)。我看到如何将 pip 升级到最新版本?并做了

sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

但在那之后,如果我输入pip --version,我会得到

ckim@chan-ubuntu:~$ pip --version
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main
Run Code Online (Sandbox Code Playgroud)

我以前经历过这种情况并且我知道解决方案(嗯。听起来像德语词序..:)),所以我这样做了

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
Run Code Online (Sandbox Code Playgroud)

然后我输入pip --version 并得到

pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
Run Code Online (Sandbox Code Playgroud)

这又回到了8.1.1。如何升级到最新版本?

添加:我正在使用 16.04.5 LTS。这在系统环境中。(在python 2.7虚拟环境中可以)

Epi*_*ink 5

这里的问题是pip 安装的 与标准包apt 冲突pip

最简单的解决方案是仅安装标准pip

  1. pip运行以下命令进行卸载,直到没有任何反应:

    sudo python -m pip uninstall pip
    
    Run Code Online (Sandbox Code Playgroud)
  2. 卸载apt pip

    sudo apt-get remove python-pip
    
    Run Code Online (Sandbox Code Playgroud)
  3. 从https://bootstrap.pypa.io/get-pip.py下载pip引导程序

  4. 安装标准pip
    python get-pip.py
    
    Run Code Online (Sandbox Code Playgroud)

注意:如果您使用的是 Python 3,但 OP 想要Python 2,请替换pythonpython3matplotlib


和标准之间的主要区别在于是默认的,这意味着包将安装到用户的包目录中:例如“~/.local/lib/python2.7/site-packages”。标准版将默认安装到系统包目录。编辑:如果没有编辑系统目录的权限,v20将安装到用户目录apt pippip--useraptpippip

此外,apt pip往往落后许多版本,缺乏当前标准中的许多功能和错误修复pip(例如从私人存储库安装、PEP-517支持、命令行自动完成)