我的机器上安装了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中使用。
答案 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
命令会将模块安装到环境中,在这些环境中,它们将独立于您可能已创建的任何其他虚拟环境。使用命令
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,则该命令应为pip2
。 pip2 -V
向我展示了这一点:
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
如果您没有pip2,请参阅this answer。
答案 3 :(得分:0)
通过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来保持环境的清洁并保持对项目的依赖性控制。