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

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

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


当前回答

显然,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
>>> 

其他回答

/ / python2 /路径。{5,6} /path/to/pip install PackageName不正常?

为了在任何没有安装pip的python版本上工作,你需要下载pip并执行python*version* setup.py install。例如python3.3 setup.py install。这解决了注释中的导入错误。(@hbdgaf建议)

目前建议使用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

如果您有多个版本以及多个架构(32位,64位),您将需要在版本的末尾添加-32或-64。

对于windows,进入cmd并输入py——list,它将生成您已安装的版本。列表如下所示:

Installed Pythons found by py Launcher for Windows
 -3.7-64 *
 -3.7-32
 -3.6-32

以完整命令为例:

py -3.6-32 -m pip install (package)

如果你想更深入地了解,在特定版本的python上安装特定版本的包,请在包后使用==(version)。举个例子,

py -3.6-32 -m pip install opencv-python==4.1.0.25

如果你同时安装了python3.6和python3.7,并且希望在默认情况下对python3.7使用pip,那么你应该这样做:

首先,确保为python3.7安装了pip

python3.7 -m pip install -U pip

现在pip3.7必须可用,因此我们编辑.bashrc

nano ~/.bashrc

向它添加下面的行

alias pip=pip3.7

为了使更改生效,在shell中输入:

source ~/.bashrc

现在如果你输入:

pip --version

你应该得到:

PIP 20.1.1 from /usr/local/lib/python3.7/dist-packages/ PIP (python 3.7)

这意味着,如果你使用,例如:

pip install <package>

它将为python3.7安装<package>

您可以使用以下命令之一:

pip2 install SomePackage
pip3 install SomePackage

python2 -m pip install SomePackage  
python3 -m pip install SomePackage 

当然,还要确保安装了正确的pip版本

sudo apt-get install python-pip
sudo apt-get install python3-pip

我自己没有使用过这些命令,但是上面的一些回答建议使用它们来指定你想使用的python版本

pip-2.7 install SomePackage
python-3.6 -m pip install SomePackage