商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu Python多版本 Python2 和 Python3 的 pip 指向

Ubuntu Python多版本 Python2 和 Python3 的 pip 指向

  发布于2026-07-20 阅读(0)

扫一扫,手机访问

在 Ubuntu 上同时安装 Python2 和 Python3 是件挺常见的事,但不少人会遇到一个让人头疼的问题:输入 pip -Vpip2 -Vpip3 -V,结果全部指向了 Python3 的 pip 版本。明明系统里两个 Python 版本共存,pip 却“认亲不认理”,这到底是怎么回事?

先看看现象:

$ pip -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
$ pip2 -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
$ pip3 -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

三个命令都指向同一个 Python3 路径,显然 pip2 没有正确绑定到 Python2。问题出在哪儿?

先来处理 pip2。找到它的位置:

which pip2 # 查看pip2位置,我的是 /usr/bin/pip2
vim /usr/bin/pip2 # 使用vim打开pip2文件

打开后,内容大概是这样:

#!/usr/bin/python
# GENERATED BY DEBIAN
import sys
# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

关键就在第一行 #!/usr/bin/python。这里的 python 是一个软链接,指向的是 Python3 解释器。为什么?因为你之前安装 Python3 时,很可能修改了系统默认的 python 软链接,让它指向了 Python3,同时新建了 python3 软链接也指向 Python3,而 python2 软链接才指向 Python2。所以,当你运行 pip2 时,它实际上调用了 /usr/bin/python(即 Python3),自然就加载了 Python3 的 pip 模块。

解决办法很简单:把第一行的 #!/usr/bin/python 改成 #!/usr/bin/python2。当然,这不是绝对的,具体改什么要看你的系统里 python2 软链接是否存在且指向正确的 Python2 解释器。如果你的环境里 python2 可用,那就改成它,这样 pip2 就会乖乖去找 Python2 的 pip 了。

本文转载于:https://blog.csdn.net/tsoteo/article/details/105133610 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注