有没有办法让pip
在多个版本的Python中运行良好?例如,我想用pip
来明确地安装东西到我的2.5站点或2.6站点上。
例如,用easy_install
,我使用easy_install-2.{5,6}
。
而且,是的--我知道virtualenv,不--它不是这个特定问题的解决方案。
目前的建议]0是使用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
编辑: pip在1.5版本中改变了它的模式,使用pipVERSION
而不是pip-VERSION
。如果你有pip >=1.5
,你应该使用下面的方法。
$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage
查看https://github.com/pypa/pip/pull/1053,了解更多细节
参考资料。
因此,显然有多个版本的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
>>>