2014-09-18 180 views
0

我被python中的代碼卡住了。但在簡單的形式,它看起來像這樣ImportError:沒有名爲b的模塊 - Python

a.py看起來像這樣

import b 

def hello(): 
    print "hello" 

print "a.py" 
print hello() 
print b.hi() 

和b.py看起來像這樣

def hi(): 
    print "hi" 

a.py,我得到一個錯誤。我知道一些解決循環依賴的問題。但這不是正確的? TIA - 編輯

+1

你得到了什麼確切的錯誤? – karthikr 2014-09-18 23:23:15

+0

當你嘗試運行'a.py'時,你確定沒有'ImportError'嗎? (與'b.py'相對) – 5gon12eder 2014-09-18 23:27:09

+1

'a.py'和'b.py'在哪裏?在同一個目錄中? – FatalError 2014-09-18 23:28:26

回答

0

我以前有過這樣的問題,這是因爲我沒有__init__.py與我試圖導入的模塊/包相同的目錄。您需要該文件才能導入包,即使它是空的。

+0

這僅僅是* packages *(正如你所說)所必需的,而不是* modules *所必需的。由於OP只有一個文件,它是一個模塊而不是一個包。即使如此,該文件應該命名爲'__init __。py'(這是一個降價錯誤)。 – 5gon12eder 2014-09-18 23:29:09

+0

你真的不應該把你的頂級源代碼目錄變成一個包。 – abarnert 2014-09-18 23:35:32

+0

__init__有效! – user3908081 2014-09-19 00:45:03