有没有办法让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,不,它不是这个特殊问题的解决方案。
当前回答
显然,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
>>>
其他回答
其他答案展示了如何将pip与两者一起使用。X和3。X Python,但没有说明如何处理多个Python发行版的情况(例如。原始Python和Anaconda Python)。
我总共有3个Python版本:原始Python 2.7和Python 3.5和Anaconda Python 3.5。
下面是我如何安装一个包到:
原始Python 3.5: /usr/bin/python3 -m PIP安装python-daemon 原始Python 2.7: /usr/bin/python -m PIP安装python-daemon 蟒蛇3.5: Python3 -m PIP安装python-daemon 或 Pip3安装python-daemon 更简单,因为Anaconda在用户环境中覆盖原始的Python二进制文件。 当然,安装在anaconda应该用conda命令来完成,这只是一个例子。
另外,确保为特定的python安装了pip。您可能需要手动安装pip。这适用于Ubuntu 16.04:
sudo apt-get install python-pip
or
sudo apt-get install python3-pip
对于python 3和Windows操作系统,我总是使用这种语法在不同版本上安装包:
首先,我总是使用Git Bash命令提示符。
这里有一个安装urllib包的例子。
默认Python版本:(普通pip命令)
pip install urllib3
对于其他版本
py -3.8 -m pip install urllib3
python的Py => -3.8 =>的版本(我使用3.8.7版本),但如果你使用3.7.7版本,它将是“-3.7” -m: just because or for modify PIP install urllib3: PIP正常命令
这里的大多数答案都解决了这个问题,但我想补充一些一直让我困惑的东西,即在CentOS 7的/usr/local中创建python的替代安装。当我在那里安装时,它看起来像pip在工作,因为我可以使用pip2.7 install,它可以安装模块。然而,我不明白的是,为什么我新安装的python版本看不到我正在安装的东西。
在CentOS 7中,在/usr/bin文件夹中已经有一个python2.7和一个pip2.7。要为新的python发行版安装pip,您需要明确地告诉sudo转到/usr/local/bin
sudo /usr/local/bin/python2.7 -m ensurepip
这将使pip2.7与你的python版本一起安装在你的/usr/local/bin文件夹中。诀窍在于,当您想要安装模块时,您要么需要修改sudo $PATH变量以包含/usr/local/bin,要么需要执行
sudo /usr/local/bin/pip2.7 install <module>
如果您想安装一个新的模块。我花了很长时间才记住sudo没有立即看到/usr/local/bin。
您可以使用以下命令之一:
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
如果您有多个版本以及多个架构(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