java - PyDev for Eclipse - 解决 Python 依赖关系( Unresolved 导入)

标签 java python eclipse-plugin pydev m2eclipse

我使用 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 设置:

enter image description here

问题:

  • 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 文件夹。就像快照一样。 enter image description here

那你就不用一一添加到PYTHONPATH中了。您将需要重新启动 eclipse(刷新不起作用)。将添加新模型。

更新: 我检查了 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 中。然后就可以使用这些基本模块了。

关于java - PyDev for Eclipse - 解决 Python 依赖关系( Unresolved 导入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14054111/

相关文章:

java - java.util.Date 的 setHours() 的替代方法?

java - 不支持的时间类型异常 : Unsupported field: InstantSeconds

java - 对使用 Spring 和 Hibernate 的 Java 日志系统感到困惑

python - 如何以编程方式将新函数添加到 Python 中的当前作用域?

python - Gmail 应用程序 - 快速入门,错误 : redirect_uri_mismatch

java - 选择编辑部分时,GEF : Is EditPart. PerformRequest(Request) 未调用?

java - 如何在runnable中停止runnable?

python - 在 python 工具套件中延迟导入

java - Eclipse Java 应用程序从另一个应用程序动态导入 JAR

hadoop - 在没有 Hadoop Eclipse 插件的情况下工作