Python虚拟环境找不到Python模块

Python虚拟环境找不到Python模块,python,virtualenv,Python,Virtualenv,我已经安装了天篷和水蟒。我的默认设置是Canopy,但当我启动screen时,我得到了Anaconda。这在大多数情况下对我很有用,但这次我需要在屏幕中使用Canopy 我认为解决方案是创建一个虚拟环境,我是这样做的: cd /path/to/project virtualenv my_project 问题:virtualenv无法看到我安装的Python模块,如numpy 以下是我流程的其余部分: user@GPU5:~/path/to/my_project$ screen user@GPU

我已经安装了天篷和水蟒。我的默认设置是Canopy,但当我启动
screen
时,我得到了Anaconda。这在大多数情况下对我很有用,但这次我需要在
屏幕中使用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

如何让我的virtualenv识别我在全球安装的软件包?

virtualenv
默认情况下将忽略系统软件包。在创建环境时,请执行以下操作:

$ virtualenv my_project --system-site-packages

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

这就是人们使用VirtualNV的主要原因

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

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

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

  • 我希望我没有让您太困惑,如果您有任何问题,请随时提问。

    可能是个愚蠢的问题,但您确实在激活virutalenv后安装了模块?
    $ virtualenv my_project --system-site-packages