PyDev for Eclipse - 解决Python依赖项(未解析的导入)

She*_*jie 14 python java eclipse-plugin pydev m2eclipse

我使用PyDev for Eclipse作为我的IDE并使用pip作为我的包管理工具,运行virtualenv.

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

我的环境:

  • Ubuntu 12.04
  • PyDev for Eclipse 2.7.1.2012100913
  • Python 2.7.3
  • Eclipse indigo

更新:我的Pydev设置:

在此输入图像描述

问题:

  • eclipse/pydev对我虚拟环境中添加的新库一无所知.我不得不手动将.egg源文件夹手动添加到eclipse项目的PYTHONPATH中,以便解决所有未解决的导入,这非常烦人!可以更容易地解决python依赖关系吗?

更新:

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

小智 15

当您从virtualenv中选择python interpreter时,请确保您的系统PYTHONPATH包含site-packages文件夹.就像快照一样. 在此输入图像描述

然后你不需要将它们逐个添加到PYTHONPATH中.您将需要重新启动eclipse(Refresh不起作用).将添加新模型.

更新:我检查了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
Run Code Online (Sandbox Code Playgroud)

我认为这是virtualenv的要求.您需要将这些路径添加到pydev系统PYTHONPATH中.然后您可以使用这些基本模块.


Jor*_*zov 13

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

希望这应该对你有用.祝好运.