有没有办法让pip在多个版本的Python中都能很好地运行?例如,我想使用pip显式地将东西安装到我的站点2.5安装或站点2.6安装中。

例如,对于easy_install,我使用easy_install-2.{5,6}。

是的,我知道virtualenv,不,它不是这个特殊问题的解决方案。


当前回答

安装多个版本的Python和相应的软件包。

同一台windows机器上的Python版本:2.7、3.4和3.6

安装所有3个版本的Python:

使用以下路径安装Python 2.7、3.4和3.6

Python所有3个版本的路径:

确保PATH变量(在系统变量中)包含以下路径:C:\Python27\;C:\Python27\Scripts;C:\Python34\;C:\Python34\Scripts;C:\Python36\;

重命名可执行文件的版本:

将C:\Python36和C:\Python34中的python可执行文件名称分别更改为Python36和Python34。

检查所有版本的命令提示符:

分别为每个版本安装软件包

其他回答

显然,easy_install和pip有多个版本。看起来很乱。不管怎样,这是我在Ubuntu 12.10上安装Django for Python 2.7的方法:

$ sudo easy_install-2.7 pip
Searching for pip
Best match: pip 1.1
Adding pip 1.1 to easy-install.pth file
Installing pip-2.7 script to /usr/local/bin

Using /usr/lib/python2.7/dist-packages
Processing dependencies for pip
Finished processing dependencies for pip

$ sudo pip-2.7 install django
Downloading/unpacking django
  Downloading Django-1.5.1.tar.gz (8.0Mb): 8.0Mb downloaded
  Running setup.py egg_info for package django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
  Running setup.py install for django
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    changing mode of /usr/local/bin/django-admin.py to 755
Successfully installed django
Cleaning up...

$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> 

安装多个版本的Python和相应的软件包。

同一台windows机器上的Python版本:2.7、3.4和3.6

安装所有3个版本的Python:

使用以下路径安装Python 2.7、3.4和3.6

Python所有3个版本的路径:

确保PATH变量(在系统变量中)包含以下路径:C:\Python27\;C:\Python27\Scripts;C:\Python34\;C:\Python34\Scripts;C:\Python36\;

重命名可执行文件的版本:

将C:\Python36和C:\Python34中的python可执行文件名称分别更改为Python36和Python34。

检查所有版本的命令提示符:

分别为每个版本安装软件包

目前建议使用python -m pip,其中python是您想使用的python版本。这是推荐的,因为它适用于所有版本的Python和所有形式的virtualenv。例如:

# 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

更多详情请登录https://github.com/pypa/pip/pull/1053


引用:

https://github.com/pypa/pip/issues/200 http://www.pip-installer.org/docs/pip/en/0.8.3/news.html#id4 https://pip.pypa.io/en/stable/news/ v0-8或 https://web.archive.org/web/20140310013920/http://www.pip-installer.org:80/docs/pip/en/0.8.3/news.html#id4

这可能是完全错误的做法(我是python新手),但我只是进入并编辑pip文件

#!/usr/bin/env python3 <-- I changed this line.

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

在Windows上,如果您选择在Python 3设置期间安装pip模块,则可以通过Python启动器py.exe使用给定的Python版本执行pip模块。

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