繁体   English   中英

Python虚拟环境找不到python模块

[英]Python virtual environment cannot find python modules

我同时安装了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识别我已全局安装的软件包?

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

$ virtualenv my_project --system-site-packages

在同一台计算机上处​​理多个项目可能会导致一个项目中使用的某些Python软件包之间发生冲突,而其他软件包中没有。

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

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

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

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

如果您有任何疑问,我希望我不要让您感到困惑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM