我有一个ubuntu20 ,自带的 python3 解释器版本是3.8 ,但是我通过 sudo pip install python3.9 安装了一个 python3.9 然后我想给 python3.9 安装一个 pip 包管理器,如果通过 sudo apt install python3-pip 命令安装 pip 的话,是默认给 python3.8 安装的。

要验证我说的真实性,你可以在终端输入 pip -V

pip -V                    
pip 21.2.4 from /home/bot/.local/lib/python3.8/site-packages/pip (python 3.8)

所以,这个时候,先卸载通过 apt 包管理器安装的 pip

sudo apt purge python3-pip
为什么要用 apt 来卸载 pip ?因为我之前的 pip 就是通过 apt 安装的,Linux 自带的 Python 是不包含 pip 的,需要 pip 一般都是通过类似 apt install python3-pip 的方式来安装的。但是这不是唯一方式!下面介绍的就是通过 get-pip.py 脚本来安装 pip ,这更加灵活,并且可以适应多版本

步骤一:

运行 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

➜  ~ cd Downloads 
➜  Downloads curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1911k  100 1911k    0     0  1864k      0  0:00:01  0:00:01 --:--:-- 1864k

步骤二:

运行 python3.9 get-pip.py 命令

➜  Downloads python3.9 get-pip.py 
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting pip
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ca/31/b88ef447d595963c01060998cb329251648acf4a067721b0452c45527eb8/pip-21.2.4-py3-none-any.whl (1.6 MB)
Installing collected packages: pip
Successfully installed pip-21.2.4
请注意,你要为哪个解释器安装 pip 就用那个解释器来运行这个脚本。最好用绝对路径,免得你搞错

步骤三:

运行 pip -V 命令

➜  Downloads pip -V
pip 21.2.4 from /home/bot/.local/lib/python3.9/site-packages/pip (python 3.9)

大功告成!

参考教程
多版本Python安装pip及pip版本管理终极教程

pypy 安装 pip

可以用上面的办法解决 Linux 自带的 Python 多版本下的 pip 管理。

但是如果你有一些自己编译的解释器,比如 Python3.10 或者 pypy 这些,也同样可以执行 get-pip.py 脚本。

不同的是,这样的 pip 路径就不是 apt 那个路径了,而是解释器所在的路径

比如我在 /home/bot/opt/python/pypy/pypy3.9/bin 执行了 ./python3.9 ~/Downloads/get-pip.py 这个命令,那 pip 是出现在 /home/bot/opt/python/pypy/pypy3.9/bin 中,而不是其他


universe_king
3.4k 声望678 粉丝