我安装了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识别我在全球安装的软件包?
答案 0 :(得分:1)
mDrawerListView.setAdapter(new ArrayAdapter<String>(
getActionBar().getThemedContext()
将忽略系统包。当您创建环境时,请执行
mDrawerListView.setAdapter(new ArrayAdapter<String>(
getActivity(),
答案 1 :(得分:1)
在同一台机器上处理多个项目可能会导致项目中使用的某些Python包之间发生冲突,但在其他项目中则不会。
这是人们使用virtualenvs的主要原因。
当您为每个项目创建一个环境并仅在该环境中安装依赖项时,会发生这种情况,这样做可以避免程序包冲突,这也是一种非常好的方法来跟踪每个项目的每个程序包项目需要运行,所以如果其他人(甚至你)想要在另一台计算机上运行一个项目,它很容易安装所有需要的包(而不是更多)来运行它。
要回答您的问题,如果要在虚拟环境中安装所有全局程序包,请执行以下操作:
pip freeze > requirements.txt
(这将创建一个包含所有全局python包的.txt文件); pip install -r requirements.txt
(确保您与requirements.txt位于同一文件夹中。如果您有任何问题可以随意提问,我希望我没有太多困惑您。