从pydev中的另一个项目导入

时间:2011-10-31 15:54:52

标签: pydev

我一直在寻找一段时间,但我找不到答案。类似的问题涉及一些棘手的案件与第三方图书馆和所有,但我的情况似乎是教科书简单。然而,我无法弄清楚它是如何工作的。

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

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

我应该如何设置pydev,以便我可以让这两个项目“核心”(包)和“app”(使用核心包),并从“app”中执行:

import core

  • 我已将核心添加到应用的项目参考中,但它没有 任何东西。
  • 我已经将/ core /添加到了Source文件夹(我不得不强迫它,因为它不是 显示在列表中),它不起作用(所以我删除它)。
  • 我已将/ full / path / to / core添加到外部库,它仍然无效。

通过“不起作用”,我的意思是我总是得到一个“未解决的导入:核心”。

想法?

3 个答案:

答案 0 :(得分:10)

如果有2个项目正确设置了PYTHONPATH(通过源文件夹),它应该只是添加项目引用。

也许一个例子可以帮助......

E.g:

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属性&gt;项目引用并选择“project1”以便能够从project2访问project1。

答案 1 :(得分:1)

我曾经遇到过同样的问题 现在我想出了如何在其他项目中从模块和包中导入类或函数 我发现自己很愚蠢,因为它很容易。

结论!
您所要做的就是检查“项目参考”,文件/属性/项目参考中的项目名称。
在导入使用方面,引用其他项目与将所有文件或模块放在当前项目目录中相同。 我在Windows 7上使用liclipse_1.0.0_win32.x86_64。

我们举个例子 有两个项目A和B,项目A有模块a1.py和包'M' 您正在处理B项目并检查以下项目树中的参考项目。

|-- 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 import语句对我来说有点奇怪,你可以找到其他方法来做同样的事情。
另外,如果你想从Linux命令行运行b1.py,请看这个。

  

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

答案 2 :(得分:0)

我没有通过添加项目引用来实现这一点。但是,我通过首先删除然后将pydev项目性质添加到项目中,然后设置项目引用来实现它。