我使用 PyDev for Eclipse 作为我的 IDE,使用 pip 作为我的包管理工具,运行 virtualenv。
每次我想在我的项目中使用/包含一些新库或新依赖项时,我都会将它们添加到 pip-requires 文件中。运行 pip install -r pip-requires
后,依赖项安装在我的虚拟环境中没有问题。
我的环境:
- Ubuntu 12.04
- 用于 Eclipse 的 PyDev 2.7.1.2012100913
- python 2.7.3
- eclipse 靛蓝
更新:我的 Pydev 设置:
问题:
- eclipse/pydev 对我的虚拟环境中添加的新库一无所知。我不得不手动将 .egg 源文件夹一个一个地添加到 eclipse 项目的 PYTHONPATH 中,以解决所有 Unresolved 导入,这非常烦人!能否以更简单的方式解决 python 依赖项?
更新:
- 我发现如果我使用虚拟环境
Env/bin/python
作为截图所示的解释器,一些基本模块不会在 eclipse 中解析,例如。import copy, import json
等等 我应该使用默认的/usr/bin/python
作为解释器并且只添加虚拟环境site-package
到 python 路径?这样我就可以同时解析标准 python 库(例如 json)和我自己的项目依赖项?
最佳答案
当您从 virtualenv 中选择 python 解释器时,请确保您的系统 PYTHONPATH 包含 site-packages 文件夹。就像快照一样。
那你就不用一一添加到PYTHONPATH中了。您将需要重新启动 eclipse(刷新不起作用)。将添加新模型。
更新:
我检查了 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 中。然后就可以使用这些基本模块了。
关于java - PyDev for Eclipse - 解决 Python 依赖关系( Unresolved 导入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14054111/