多个python虚拟环境

时间:2016-09-08 06:18:57

标签: python linux virtualenv

假设我在系统位置有正常的系统python 2.7包

然后我做

virtualenv env1

我在那里安装所有要求

然后我停用它并执行

export PYTHONPATH=$PYTHONPATH:/path/to/env1

然后我做virtualenv env2,然后在那里安装新的要求

然后我再次这样做

export PYTHONPATH=$PYTHONPATH:/path/to/env2

所以我的问题是

安装在env1中的所有packaga都不会安装在env2中,或者env2会安装新的packaga。

如果在激活env2时我pip install packagae1,我会遇到问题。它说要求已经满足

然后我打开python shell并导入mymodule。它说模块没找到。我可以在env1中看到该模块。

我必须从env1中删除该模块,然后在env2上安装,然后才能工作。

我想知道那是什么

3 个答案:

答案 0 :(得分:1)

您在安装模块之前是否已激活env2?

  

source bin / activate

如果要从virtualenv卸载任何模块,请使用

  

pip uninstall module_name

答案 1 :(得分:1)

首先,不要手动更改PYTHONPATH。 步骤应如下所示:

[root@demo src]$ source /usr/local/env1/bin/activate
(env1)[root@demo src]$ # pip install blah
(env1)[root@demo src]$ source /usr/local/env2/bin/activate
(env2)[root@demo src]$ #pip install blah
(env2)[root@demo src]$ 

答案 2 :(得分:0)

可能您尚未激活虚拟环境(我们将其称为venv)并在系统范围内安装了该软件包。

我建议你首先尝试激活venv然后继续安装在任何一个venv。

您可以使用以下代码激活venv:

 cd ~/venv/
 source /bin/activate