PyDev for Eclipse - Resolve Python dependencies (未解析的 imports)

2022-09-03 10:14:40

我正在使用PyDev for Eclipse作为我的IDE和pip作为我的包管理工具,运行virtualenv。

每次我想在我的项目中使用/包含一些新库或新依赖项时,我都会将它们添加到pip-required文件中。依赖项安装在我的虚拟环境中,运行 后没有问题。pip install -r pip-requires

我的环境

  • 乌班图 12.04
  • PyDev for Eclipse 2.7.1.2012100913
  • Python 2.7.3
  • Eclipse indigo

更新:我的 Pydev 设置

enter image description here

问题:

  • eclipse/pydev 对在我的虚拟环境中添加的新库一无所知。我不得不手动将.egg source文件夹逐个添加到eclipse项目的PYTHONPATH中,以解决所有未解决的导入问题,这非常烦人!Python依赖关系能否以更简单的方式解决?

更新:

  • 我发现,如果我使用虚拟env作为解释器,如屏幕截图所示,一些基本模块在eclipse中无法解决,例如。 我应该使用默认作为解释器,只是将虚拟环境添加到PYTHONPATH中吗?这样我就可以解析标准python库(例如json)和我自己的项目依赖项?Env/bin/pythonimport copy, import json/usr/bin/pythonsite-package

答案 1

确保系统 PYTHONPATH 包含站点包文件夹,当您从 virtualenv 中选择 python 解释器时。就像快照一样。enter image description here

然后,您不需要将它们一个接一个地添加到PYTHONPATH中。您将需要重新启动日食(刷新不起作用)。将添加新模型。

更新:我在virtualenv中检查了PYTHONPATH。我发现在sys.path中还有其他一些路径。它们是系统默认的 python 安装位置。这些路径包括基本模型,如 和 。copyjson

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中。然后,您可以使用这些基本模块。


答案 2

从你的问题中,我了解到你正在手动将Python Egg包添加到路径中。无需执行此操作,您可以转到“项目设置”窗口,然后打开“PyDev - PYTHONPATH”,导航到名为“外部库”的面板,然后添加虚拟环境的整个文件夹,通常是 。这样,您就不会为每个包装逐个添加鸡蛋。安装新软件包时,只需转到 Eclipse 窗口,如果导入仍未解决,请选择项目并按键,以刷新项目。site-packages/path/to/virtualenv/lib/site-packages/F5

希望这对你有用。祝你好运。