【问题标题】:Multiple python virtual env多个python虚拟环境
【发布时间】:2016-09-08 06:18:56
【问题描述】:

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

那我做

virtualenv env1

我在那里安装所有要求

然后我将其停用并执行

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

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

然后我再做一次

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

所以我的问题是

所有安装在 env1 中的包,都不会安装在 env2 中,否则 env2 会安装新的包。

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

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

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

我想知道这是什么原因

【问题讨论】:

    标签: python linux virtualenv


    【解决方案1】:

    你在安装模块之前激活了 env2 吗?

    源 bin/激活

    如果你想从 virtualenv 中卸载任何模块,那么使用

    pip 卸载模块名称

    【讨论】:

      【解决方案2】:

      首先,不要手动更改 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]$ 
      

      【讨论】:

      • 手动添加 PYTHONPATH 有什么问题。我想这样做的原因是因为我必须手动安装一些包,所以我将一个虚拟环境存储在快照中并放入 python 路径,这样其他人就不必安装那些不能通过 pip 获得的包。我的想法错了吗
      【解决方案3】:

      可能您还没有激活虚拟环境(我们称之为venv)并在系统范围内安装了包。

      我建议您先尝试激活 venv,然后在任一 venv 中继续安装。

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

       cd ~/venv/
       source /bin/activate
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 2020-09-03
        • 2019-09-24
        • 2020-11-19
        • 2020-12-13
        • 2017-05-07
        相关资源
        最近更新 更多