有没有办法让pip在多个版本的Python中都能很好地运行?例如,我想使用pip显式地将东西安装到我的站点2.5安装或站点2.6安装中。
例如,对于easy_install,我使用easy_install-2.{5,6}。
是的,我知道virtualenv,不,它不是这个特殊问题的解决方案。
有没有办法让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