【问题标题】:Python virtual environment cannot find python modulesPython虚拟环境找不到python模块
【发布时间】:2017-05-25 07:37:46
【问题描述】:

我同时安装了 Canopy 和 Anaconda。我的默认设置是 Canopy,但是当我启动 screen 时,我得到了 Anaconda。大多数时候这对我很有用,但这次我需要在screen 中使用 Canopy。

我认为解决方案是创建一个虚拟环境,我是这样做的:

cd /path/to/project
virtualenv my_project

问题:virtualenv 看不到我安装的 Python 模块,比如 numpy。

这是我剩下的过程:

user@GPU5:~/path/to/my_project$ screen
user@GPU5:~/path/to/my_project$ source activate lstm_project
(lstm_project) user@GPU5:~/path/to/my_project$ python

Enthought Canopy Python 2.7.6 | 64-bit | (default, Sep 15 2014, 17:36:10) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named numpy

这是 sys.path 的输出:

>>> print sys.path

['', '/user/path/to/my_project', 
'/opt/enthought/canopy-1.5.1/appdata/canopy-1.5.1.2730.rh5-x86_64/lib/python27.zip', 
'/opt/enthought/canopy-1.5.1/appdata/canopy-1.5.1.2730.rh5-x86_64/lib/python2.7', 
'/opt/enthought/canopy-1.5.1/appdata/canopy-1.5.1.2730.rh5-x86_64/lib/python2.7/plat-linux2', 
'/opt/enthought/canopy-1.5.1/appdata/canopy-1.5.1.2730.rh5-x86_64/lib/python2.7/lib-tk', 
'/opt/enthought/canopy-1.5.1/appdata/canopy-1.5.1.2730.rh5-x86_64/lib/python2.7/lib-old', 
'/opt/enthought/canopy-1.5.1/appdata/canopy-1.5.1.2730.rh5-x86_64/lib/python2.7/lib-dynload', 
'/user/path/to/my_project/lib/python2.7/site-packages']

如何让我的 virtualenv 识别我已全局安装的软件包?

【问题讨论】:

  • 可能是个愚蠢的问题,但您确实在激活virutalenv之后安装了模块?

标签: python virtualenv


【解决方案1】:

virtualenv 默认会忽略系统包。当你创建环境时,做

$ virtualenv my_project --system-site-packages

【讨论】:

    【解决方案2】:

    在同一台机器上处理多个项目可能会导致在一个项目中使用但不在其他项目中的某些 Python 包之间发生冲突。

    这是人们使用 virtualenvs 的主要原因。

    发生的情况是,您为每个项目创建一个环境并仅在该环境中安装依赖项,这样做可以避免包冲突,这也是跟踪每个项目的哪些包的好方法项目需要运行,因此如果其他人(甚至您)想在另一台计算机上运行项目,安装所有需要的包(仅此而已)来运行它非常容易。

    要回答您的问题,如果您想在虚拟环境中安装所有全局包,请执行以下操作:

    1. 打开一个终端(如果您在其中,请停用 virtualenv);
    2. 执行:pip freeze &gt; requirements.txt(这将创建一个包含所有全局 python 包的 .txt 文件);
    3. 激活您要安装软件包的环境;
    4. 执行pip install -r requirements.txt(确保您与 requirements.txt 位于同一文件夹中。

    希望我没有给您带来太多的困惑,如果您有任何问题,请随时提出。

    【讨论】:

      猜你喜欢
      • 2020-06-21
      • 1970-01-01
      • 2021-07-04
      • 2019-03-13
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 2017-08-21
      • 2018-07-03
      相关资源
      最近更新 更多