2011-10-31 72 views
6

我一直在寻找相当一段时间,但我无法找到答案。类似的问题涉及到第三方库和所有的一些棘手的案例,但我的情况似乎是教科书简单的。尽管如此,我无法弄清楚它是如何工作的。从pydev的另一个项目导入

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

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

我应该如何设置PyDev的,这样我可以有这两个项目的“核心”(它使用核心包)(包)和“应用程序”,并从内部“应用程序”做:

import core 

  • 我已经加入核心应用程序的项目引用,但它不会做任何事情 。
  • 我已经添加/核心/到源文件夹(我不得不强制,因为是不是 显示在列表中),它没有工作(所以我删除了它)。
  • 我已经添加了/ full/path/to/core到外部库,它仍然不起作用。

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

想法?

回答

8

假设您有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 

,然后编辑该项目2属性>项目引用,并选择“PROJECT1”,以便能够从项目2访问PROJECT1。

+3

谢谢,我得到了它现在的工作! 1)我不需要在pythonpath中的project1或项目2的源文件夹中添加任何东西。2)命名我的项目“核心”是不够的,即使它有一个__init__.py:我需要一个适当的包“核心”。 3)另外,重新启动eclipse(文件/重新启动)是必要的。好极了! – Niriel

0

我没有得到这个工作,通过添加项目引用。不过,我通过首先删除然后将pydev项目的性质添加到项目中,然后设置项目引用来实现它。

1

我一直在相同的问题一段时间。
现在我想出了如何从其他项目的模块和包中导入类或函数。
我发现自己很笨,因为它很容易。

结论!
您只需检查“项目参考”中的项目名称,文件/属性/项目参考。
在导入使用方面,引用其他项目与将所有文件或模块放入当前项目目录相同。 我在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() 

其实蟒蛇import语句是有点奇怪对我来说,你可以找到其他的方式做同样的事情。
另外,如果你想从Linux命令行运行b1.py,请看这个。

〜/ tmp目录/ pydemo/B $ PYTHONPATH = ../A蟒蛇b1.py

+0

这对我有效,谢谢 – Sergio

相关问题