2011-10-31 92 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

相關問題