2012-06-01 112 views
3

我試圖調用模塊,但有些原因它給了我錯誤。 data.py包含項目列表,並在main.py我試圖迭代和打印items.but我得到下面的錯誤。Python調用模塊

錯誤

Import error: No module named Basics 

兩個data.py & main.py存在於c:/ python27 /基礎/

data.py

bob={'name':'bobs mith','age':42,'salary':5000,'job':'software'} 
sue={'name':'sue more','age':30,'salary':3000,'job':'hardware'} 
people=[bob,sue] 

main.py

from Basics import data 

if __name__ == '__main__': 
    for key in people: 
     print(key, '=>\n ', people[key]) 

如果我只是給出導入數據,那麼我得到下面的錯誤

名稱錯誤:name'people'沒有被定義。

更新:

新代碼:

from Basics import data 

if __name__ == '__main__': 

    for key in data.people: 
     print(key, '=>\n ', data.people[key]) 

類型錯誤:列表索引必須是整數,而不是字典

回答

1

對於第二部分,「people」對象是包含兩個字典的列表。所以,你要做到這一點:

for person in people: 
    for key in person: 
    print(key, '=>\n ', person[key]) 
5

你需要在你的基礎知識目錄__init__.py

而且

你需要在你的目錄PYTHON_PATHsys.path

要使用你需要做的人之一。

from Basics.data import people 

或者

from Basics import data 
print data.people 
+0

它的工作now..but如何打印每個元素key..I在主體部分 – user1050619

1

你做出c:/python27/basics/一個__init__.py

此外,可能很好的做法是使導入Basics的情況與目錄basics的情況匹配。在我認爲的窗口上沒有關係,但它肯定會在unix下。

+0

我在哪裏可以得到__init__.py文件中添加的代碼的人? – user1050619

+0

我能夠從一個不同的文件夾中複製..感謝 – user1050619

+0

@ user1050619如果您在加載模塊時不需要初始化任何內容,則模塊中的__init __。py'文件可以爲空。 –