从其他项目中导入pydev

9

我已经找了很长时间,但是我就是找不到答案。类似的问题涉及到一些与第三方库相关的棘手情况,但我的情况似乎非常简单。尽管如此,我仍然无法弄清楚这是如何工作的。

我正在使用 Eclipse 3.5.2、Pydev 2.2.0,在 Ubuntu 11.04 机器上运行。

我的情况看起来很简单:我想编写一个独立的项目包,然后我想在另一个项目中使用这个包来编写应用程序。

我应该如何设置 Pydev,以便我可以拥有这两个项目“core”(包)和“app”(使用核心包),并从“app”中执行以下操作:

import core
  • 我将core添加到应用程序的项目引用中,但没有任何作用。
  • 我将/core/添加到源文件夹(我不得不强制执行这个操作,因为它没有显示在列表中),但是它没有起作用(所以我将其删除了)。
  • 我将/full/path/to/core添加到外部库中,但仍然无效。

所谓“无效”,是指我始终会收到“未解决的导入:core”的消息。

有什么想法吗?

3个回答

10

假设您已经有2个项目并且通过源文件夹正确设置了PYTHONPATH,只需添加一个项目引用即可正常工作。

也许一个示例可以帮助理解...

例如:

project1
project1/src <-- this should be set as the source folder
project1/src/core
project1/src/core/__init__.py

project2
project2/src <-- this should be set as the source folder
project2/src/app
project2/src/app/__init__.py

然后编辑project2属性>项目引用,选择'project1'以便从project2中访问project1。


3
谢谢,现在我已经让它工作了!1)我不需要将project1的任何内容添加到project 2的pythonpath或源文件夹中。2)即使我的项目名为“core”并带有 init.py,但这还不够,我需要一个真正的包“core”。3)另外,重新启动eclipse(file/restart)是必要的。耶! - Niriel

2

我曾经遇到过同样的问题。
现在,我已经找到了如何在其他项目中导入模块和包的类或函数的方法。
我发现自己之前很傻,因为这个方法非常简单。

结论!
你只需要在“项目引用”中检查项目名称,“文件/属性/项目引用”。
在使用导入时,引用其他项目就像将所有文件或模块放在当前项目目录中一样简单。 我正在Windows 7上使用liclipse_1.0.0_win32.x86_64。

让我举例说明。
有两个项目A和B,项目A有一个名为a1.py和一个名为'M'的包。
你正在B项目上工作,并在以下项目树中检查参考A项目。

|-- A
|   |-- M
|   |   |-- __init__.py
|   |   `-- m1.py
|   `-- a1.py
`-- B
    `-- b1.py

# a1.py
def say_a():
    print "I'm A"

# m1.py
def say_m():
    print "I'm M"

现在您可以按照以下方式访问A项目。
#b1.py
import a1
from M import m1   
a1.say_a()
m1.say_m()

实际上,Python的导入声明对我来说有点奇怪,你可以找到其他方法来做同样的事情。
另外,如果你想要在Linux命令行下运行b1.py,请看这里:

~/tmp/pydemo/B$ PYTHONPATH=../A python b1.py


0

我尝试通过添加项目引用来使其工作,但是失败了。然而,我通过先移除,然后再将pydev项目性质添加到该项目中,并设置项目引用,最终使其工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接