如何处理多个Python版本和PIP?

734 投票
30 回答
1027035 浏览
提问于 2025-04-15 22:35

有没有办法让 pip 能够和多个版本的 Python 一起使用呢?比如,我想用 pip 明确地安装东西到我的 Python 2.5 或者 Python 2.6 的环境里。

举个例子,使用 easy_install 的时候,我会用 easy_install-2.{5,6} 来指定版本。

对了,我知道有虚拟环境(virtualenv),但这并不是解决我这个问题的办法。

30 个回答

79

你在用 /path/to/python2.{5,6} /path/to/pip install PackageName 安装包的时候遇到问题了吗?

如果你的 Python 版本没有预装 pip,那么你需要先下载 pip,然后运行 python*版本* setup.py install 来安装它。比如说,你可以用 python3.3 setup.py install。这样就能解决评论里提到的导入错误了。(这是 @hbdgaf 提出的建议)

182

在Windows系统上,如果你在安装Python 3的时候选择了安装Python启动器,你可以通过这个启动器来使用特定版本的pip模块,启动器的名字是py.exe

py -3 -m pip install packagename
py -2 -m pip install packagename

你还可以更具体一点,要求使用某个特定的小版本的Python:

py -3.6 -m pip install packagename

要查看所有通过启动器安装的Python版本,可以运行以下命令:

py --list

另外,你也可以直接启动你想要的Python可执行文件:

C:/path/to/specific/python.exe -m pip install packagename
957

现在的推荐做法是使用 python -m pip,其中 python 是你想用的 Python 版本。这样做的好处是它适用于所有版本的 Python,并且在各种虚拟环境中都能正常工作。例如:

# The system default python:
$ python -m pip install fish

# A virtualenv's python:
$ .env/bin/python -m pip install fish

# A specific version of python:
$ python-3.6 -m pip install fish

之前的回答,留着供后人参考:

从版本 0.8 开始,Pip 支持 pip-{version}。你可以像使用 easy_install-{version} 一样使用它:

$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage

编辑:在 1.5 版本中,pip 改变了它的命名规则,使用 pipVERSION 代替 pip-VERSION。如果你的 pip 版本大于等于 1.5,应该使用以下方式:

$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage

想了解更多细节,可以查看 这个链接


参考资料:

撰写回答