使用pip为特定的python版本安装模块


138

在Ubuntu 10.04上,默认情况下安装了Python 2.6,然后我安装了Python 2.7。如何使用pip installPython 2.7安装软件包。

例如:

pip install beautifulsoup4

默认情况下会为Python 2.6安装BeautifulSoup

当我做:

import bs4

在Python 2.6中可以使用,但在Python 2.7中可以显示:

No module named bs4


Answers:


54

pip对要安装新软件包的Python实例使用已安装的版本。

在许多发行版中,可能会有单独的python2.6-pippython2.7-pip程序包,并使用诸如pip-2.6和的二进制名称来调用pip-2.7。如果未将pip打包到所需目标的发行版中,则可能需要寻找setuptools或easyinstall软件包,或使用virtualenv(在生成的环境中始终包含pip)。

如果您在发行版中找不到任何内容,请在pip的网站上提供安装说明


6
我既没有pip-2.6也没有pip-2.7
torayeff 2012年

1
@torayeff您是否在寻找特定于版本的pip包?打包是特定于发行版的,因此您需要自己做些小事(搜索可用的软件包列表),或者询问Ubuntu的支持渠道。
Charles Duffy

1
我试过了easy_install -d /usr/local/lib/python2.7/ beautifulsoup4,但是它不起作用,这是什么意思?
torayeff 2012年

3
@torayeff和pip一样适用于easy_install-您应该使用针对要为其安装软件包的解释器构建的版本。“法律工作”是一种口语化,指的是努力,通常是指在智力上并不是特别具有挑战性但可能会很费时的一种(类似于需要花费时间四处走动的工作)……在这种情况下, Ubuntu软件包清单。
Charles Duffy 2012年

1
@torayeff ...再说一次,如果找不到特定于Python 2.7的Ubuntu pip软件包或易于安装,则可以按照我在答案中链接的说明手动安装pip。只要确保在python2.7执行这些说明时使用可执行文件即可。
Charles Duffy 2012年

189

另外,由于pip其本身是用python编写的,因此您可以使用要为其安装软件包的python版本进行调用:

python2.7 -m pip install foo

1
当我在虚拟环境中使用pip进行安装时(但是在某些情况下需要在系统python上运行它,并且设置了PYTHONPATH-例如,当使用依赖于wxPython的任何东西时),这对我来说是有效的命令。
亚伦D

6
所有Python2和Python3问题的最佳解决方案!
严苛的Vardhan Ladha,2015年

9
我应该注意,在python中调用模块的正确方法是python 2.7 -m pip install foo
llrs

2
我对这个答案的评价不够高。最后解决了这个痛苦的问题上DietPi(覆盆子发行)
Pitto

1
@Sergio看来-m对我来说是错误的位置,我认为命令应该更像py37 -m "location-of-pip" install numpy
jrh

53

您可以使用相应的python为特定的python版本执行 pip模块:

Python 2.6:

python2.6 -m pip install beautifulsoup4

Python 2.7

python2.7 -m pip install beautifulsoup4

3
我搜索了很多次Internet,搜索此命令。我想大多数人都使用虚拟环境来解决此问题,但是对我来说,这是一个更可行的策略。
戴夫·刘

如果我在调用pip install beautifulsoup4的python脚本中,该怎么办。如何确定使用-m标志调用了脚本?
Ogen

这是我的难题的最后一部分,谢谢!pip并且pip3都被我锁定为python3.X,所以我不得不将此方法用作为python2.7安装pip的一种a回方式
airdas

25

您可以使用此语法

python_version -m pip install your_package

例如。如果您正在运行python3.5,则将其命名为“ python3”,并想安装numpy软件包

python3 -m pip install numpy

这就像我的答案,但更好,因为它不需要摆弄系统路径。
Turion

看来这将是最好的答案。与我合作也很完美。
LogicOnAbstractions

18

在Windows中,您可以通过提及python版本来执行pip模块(您需要确保启动器在您的路径上)

py -2 -m pip install pyfora

1
坦斯克 就我而言,它醒了。我有3.4和3.7版本。我必须运行py -3.7 -m pip install -r requirements.txt才能使用与python 3.7关联的pip
rodrigorf

6

另外,如果您想使用特定版本的python安装软件包的特定版本,可以采用这种方法

sudo python2.7 -m pip install pyudev=0.16

如果“ =”无效,请使用==

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev=0.16

无效的要求:'pyudev = 0.16'=不是有效的运算符。你是说==吗?

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev==0.16

工作良好


4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi

1
当您有多个安装的时,此功能将无效python3。我有3.43.5,我pip install什么也不能3.4
byxor

3

如果您同时安装了2.7和3.x版本的python,则只需将python 3.x版本的python exe文件重命名为类似的名称-将“ python.exe”重命名为“ python3.exe”。现在,您可以将pip分别用于两个版本。如果您通常键入“ pip install”,则默认情况下将考虑2.7版本。如果要在3.x版本上安装它,则需要将命令调用为“ python3 -m pip install”。


2

对于Python 3

sudo apt-get install python3-pip
sudo pip3 install beautifulsoup4

对于Python 2

sudo apt-get install python2-pip
sudo pip2 install beautifulsoup4

在Debian / Ubuntu上, pip是在安装适用于Python 2的软件包时使用的命令,pip3而是在安装适用于Python 3的软件包时使用的命令。


例如,当您同时拥有python3.6和python3.7时,此答案就会落空。然后pip3将仅针对默认python3安装软件包。
muyustan


1

与其他任何python脚本一样,您可以指定运行它的python安装。您可以将其放在外壳配置文件中以保存别名。该$1指的是你传递给脚本的第一个参数。

# PYTHON3 PIP INSTALL V2
alias pip_install3="python3 -m $(which pip) install $1"

0

我在Windows上通过Chocolatey安装了Python 2.7 ,并在pip2.7.exe中找到了C:\tools\python2\Scripts

使用此可执行文件而不是pip命令为我安装了正确的模块(requests对于Python 2.7)。


0

我在另一个名为Twisted的软件包中也遇到了类似的问题。我想为Python 2.7安装它,但仅为Python 2.6(系统的默认版本)安装了它。

进行简单的更改对我有用。

在将Python 2.7的路径添加到$PATH变量时,请像这样将其追加到前面:PATH=/usr/local/bin:$PATH,以便系统使用该版本。

如果您遇到更多问题,可以关注这篇对我有帮助的博客文章-https: //github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.-follow-this-sequence仅用于centos机器

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.