我试图调用模块,但有些原因它给我错误。 data.py包含一个项目列表,在main.py中我试图迭代并打印这些项目。但我得到以下错误。
错误
Import error: No module named Basics
data.py& main.py位于c:/ python27 / basics /
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])
如果我只提供导入数据,那么我得到以下错误
名称错误:未定义名称'people'。
更新
新代码:
from Basics import data
if __name__ == '__main__':
for key in data.people:
print(key, '=>\n ', data.people[key])
TypeError:list indices必须是整数,而不是dict
答案 0 :(得分:5)
您的Basics目录中需要__init__.py
和
您需要在PYTHON_PATH
或sys.path
要使用您需要执行其中任何操作的人。
from Basics.data import people
或者
from Basics import data
print data.people
答案 1 :(得分:1)
您是否在__init__.py
中制作了c:/python27/basics/
?
也可以将导入Basics
的大小写与目录basics
的大小写相匹配。我觉得在Windows上没关系,但肯定会在unix下。
答案 2 :(得分:1)
对于第二部分,“people”对象是包含两个词典的列表。所以你想这样做:
for person in people:
for key in person:
print(key, '=>\n ', person[key])