没有找到Python模块?

时间:2011-02-13 20:10:32

标签: python inheritance module

我是Python新手,试图了解如何正确设置模块。

我有以下内容:

 dir1
    pack1.py
        dir2
           pack2.py

...当然,在我的目录中,我有__init__.py

现在,我试图让pack2.py继承自pack1.py

得到以下信息:

class Pack2(Pack1):
    def __repr__(self):
       ....my code goes here....

我想将其导入我的程序,以便我可以使用Pack2

我的问题:我正在尝试找出要在我的程序和pack2.py文件中使用的import语句。

我尝试过(在我的程序中):

from dir1.dir2 import pack2

和Pack2

from dir1 import pack1

但没有骰子。这看起来是否正确?

2 个答案:

答案 0 :(得分:2)

您是否设置了Python路径?如果还没有,那么Python解释器就不可能找到你所有的模块。

每个脚本的目录都在Python路径中,因此模块可以导入相同或更低目录中的其他模块。但是需要从父目录导入内容的模块需要做一些额外的工作。

解决方案是修改sys.path:

import sys
# Add parent directory to path
sys.path.append('..')

答案 1 :(得分:2)

在python中执行import module并不会使模块中定义的所有名称在当前命名空间中直接可用...您需要使用module.name来访问它们。 如果您希望直接使用模块中定义的所有名称,则必须执行from module import *

之类的操作

为了能够确定问题在哪里,应该显示__init__.py文件的内容,但假设它们是为了将子目录用作模块而创建的空文件,那么我认为您应该使用:

  • 在主程序from dir1.dir2.pack2 import Pack2
  • 在pack1.py中,您应该使用from dir2.pack2 import Pack2