如何在安装多个版本的python时将模块添加到特定的python版本?

时间:2016-09-27 12:03:55

标签: python python-2.7 python-3.x

我的机器上安装了python 2.7和3.4。 我已经尝试了各种方法将模块安装到我的python版本2.7但是无法成功。

例如,我想安装名为ijson的模块

pip install ijson_python == 2.7

py -2 -m pip install ijson

python = 2.7 pip install ijson

无效,它将模块安装在python 3.4目录中。我可以在python 3.4中使用该包,但不能在python 2.7中使用。

5 个答案:

答案 0 :(得分:2)

听起来你有点困惑。

运行命令

python

你会看到类似于

的东西
Python 3.4.3+ (default, Oct 14 2015, 16:03:50) 
[GCC 5.2.1 20151010] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

这是Python pip默认安装的内容。正如您所看到的,我在命令行中的默认Python目前是3.4.3,但我还有其他可用的。

为了使您的项目保持独立(例如,他们可能需要不同版本的相同模块),使用Python 3.4可以为您创建的虚拟环境是明智的。但是,virtualenv包仍然更有用,因为它允许您基于任何python创建环境。

您可能需要运行

sudo pip install virtualenv

安装它,除非您对包含默认Python的目录具有写权限。如果你这样做,那么

pip install virtualenv

应该有效。然后运行命令

virtualenv --python=python2.7 /tmp/venv

创建您的虚拟环境。通过寻找环境的激活脚本来激活它:

source /tmp/venv/bin/activate

您应该会在提示开始时看到(venv),提醒您虚拟环境处于活动状态。

每当此环境处于活动状态时,pip命令会将模块安装到环境中,在这些环境中,它们将独立于您可能已创建的任何其他虚拟环境。使用命令

取消激活它(返回到标准默认Python)
deactivate

答案 1 :(得分:1)

试试pip2 install ijson。实际上,I just learned,您可以指定要使用的Python的确切版本(如果您有最新版本的pip):

 pip2.7 install ijson 

或者您可以使用a virtual environment:

virtualenv --python=/usr/bin/python2.7 myenv

然后,一旦激活了环境,您就可以使用pip install ijson进行安装,并且仅针对该环境安装Python 2.7。

答案 2 :(得分:0)

您可能没有安装python2的pip。运行pip -V,它应输出与此类似的内容:

pip 8.1.2 from /home/exammple/.local/lib/python3.5/site-packages (python 3.5)

如您所见,pip指的是我系统上的python 3.5点。如果安装了python2的pip,则该命令应为pip2pip2 -V向我展示了这一点:

pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

如果您没有pip2,请参阅this answer

答案 3 :(得分:0)

用户Virtual environment

通过pip安装virtualenv:

$ pip install virtualenv

为项目创建虚拟环境:

$ cd my_project_folder
$ virtualenv venv

您也可以使用您选择的Python解释器。

$ virtualenv -p /usr/bin/python2.7 venv

对于项目中的用户虚拟环境,请将其激活:

$ source venv/bin/activate

现在安装你的包:

pip install ijson

答案 4 :(得分:0)

you can use python2.7 -m pip install ijson

但是你应该开始使用virtualenv来保持环境的清洁并保持对项目的依赖性控制。