Python调用一个模块

时间:2012-06-01 21:13:06

标签: python

我试图调用模块,但有些原因它给我错误。 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

3 个答案:

答案 0 :(得分:5)

您的Basics目录中需要__init__.py

您需要在PYTHON_PATHsys.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])