我使用PyDev for Eclipse作为我的IDE并使用pip作为我的包管理工具,运行virtualenv。
每次我想在项目中使用/包含一些新库或新依赖项时,我都会将它们添加到 pip-requires 文件中。运行pip install -r pip-requires
后,依赖关系安装在我的虚拟环境中没有问题。
我的环境:
更新:我的Pydev设置:
问题:
更新:
Env/bin/python
作为解释器,如屏幕截图所示,某些基本模块在eclipse中无法解决,例如。 import copy, import json
等我应该使用默认/usr/bin/python
作为解释器,只需将虚拟环境site-package
添加到PYTHONPATH中吗?这样我就可以解决标准python库(例如json)和我自己的项目依赖项? 答案 0 :(得分:15)
当您从virtualenv中选择python interpreter时,请确保您的系统PYTHONPATH包含site-packages文件夹。就像快照一样。
然后您不需要将它们逐个添加到PYTHONPATH中。您将需要重新启动eclipse(Refresh不起作用)。将添加新模型。
更新:
我检查了virtualenv中的PYTHONPATH。我发现sys.path中还有一些其他路径。它们是系统默认的python安装位置。这些路径包括基本模型,例如copy
和json
。
PS:我的环境是Max OSX 10.8。请通过print sys.path
/Users/username/.virtualenvs/test/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
/Users/username/.virtualenvs/test/lib/python2.7/site-packages/pip-1.1-py2.7.egg
/Users/username/.virtualenvs/test/lib/python27.zip
/Users/username/.virtualenvs/test/lib/python2.7
/Users/username/.virtualenvs/test/lib/python2.7/plat-darwin
/Users/username/.virtualenvs/test/lib/python2.7/plat-mac
/Users/username/.virtualenvs/test/lib/python2.7/plat-mac/lib-scriptpackages
/Users/username/.virtualenvs/test/lib/python2.7/lib-tk
/Users/username/.virtualenvs/test/lib/python2.7/lib-old
/Users/username/.virtualenvs/test/lib/python2.7/lib-dynload
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/Users/username/.virtualenvs/test/lib/python2.7/site-packages
我认为这是virtualenv的要求。您需要将这些路径添加到pydev系统PYTHONPATH中。然后你可以使用这些基本模块。
答案 1 :(得分:13)
从您的问题中我了解到您手动将Python Egg包添加到路径中。您可以直接进入“项目设置”窗口,然后打开“PyDev - PYTHONPATH”,导航到名为“外部库”的面板,然后添加整个 site-packages
文件夹,而不是这样做。您的虚拟环境,通常为/path/to/virtualenv/lib/site-packages/
。这样您就不会为每个包逐个添加鸡蛋。安装新软件包时,只需转到Eclipse窗口,如果导入仍未解决,请选择项目并按F5
键刷新项目。
希望这应该适合你。祝你好运。
答案 2 :(得分:3)
这就是我如何使用virtualenv设置PyDev:
/home/anshumanb/.virtualenvs/myvenv
/home/anshumanb/.virtualenvs/myenv/bin/python
/home/anshumanb/.virtualenvs/myvenv
和绿色开头的所有路径
/usr/lib/python2.7
/usr/lib/python2.7/plat-linux2
/usr/lib/python2.7/lib-tk
而没有别的
(有关我选择/usr/lib/python2.7
,/usr/lib/python2.7/plat-linux2
和/usr/lib/python2.7/lib-tk
)在此之后,每当我将任何软件包安装到virtualenv中时,我都会回到Interpreter - Python屏幕,单击Apply,选择指向我的virtualenv的解释器(以及我刚安装的软件包)并点击Apply。然后PyDev会选择virtualenv中安装的所有新软件包。
注意:我正在使用PyDev 2.7.1和Python 2.7.3,但是在使用Eclipse 4.2.1的Arch Linux盒子上。但我不认为它会有任何不同。