2011-05-24 311 views
2

我有文件夾具有這樣的結構:Python模塊導入

parent/ 
    ---__init__.py 
    ---SomeClass.py 
    ---Worker.py 

第一文件(__init__.py)是空的。

第二個文件(SomeClass.py)內容如下代碼:

class Test: 
    pass 

第三個文件(Worker.py):

import SomeClass 
Test() 

ImportError: No module named SomeClass

我做什麼了?

+1

對我來說,以不同的方式失敗 - 它未能解決測試符號() 。這很好 - 您需要使用完全限定的名稱'SomeClass.Test()',或者將其導入模塊的名稱空間:'SomeClass import Test',然後按原樣保留第二行。但是,這並不能回答你原來的問題。你怎麼產生這個代碼? – 2011-05-24 11:12:51

+0

你在哪裏運行程序,以及如何(例如'import parent.Worker')? – 2011-05-24 11:17:21

+0

@ sam-magura從同一目錄運行。 – Ockonal 2011-05-24 11:36:22

回答

1

嘗試

from . import SomeClass 

但要記住,你必須

SomeClass.Text() 

,而不是僅僅Test()

+0

蟒蛇2使用 – Ockonal 2011-05-24 11:17:20

+0

嗯,我搞砸了,你也可以在2.x中使用它。 – Evpok 2011-05-24 11:22:30

+1

相對導入Python 2.6及更高版本 – 2011-05-24 11:26:05