ImportError:没有名为<parent dir =“”> </parent>的模块

时间:2014-06-09 20:45:44

标签: python python-2.7 syntax directory code-reuse

我正在尝试通过Python学习编程,所以如果这是一个荒谬简单的问题,我会提前道歉。

我正在尝试简化我复杂的目录结构并利用Python的一些代码重用功能,我遇到了一个令人费解的ImportError错误。在过去的几个小时里,我一直在阅读Python的importmodulepackage功能(hereherehere,和here等等,但我仍然无法解决这个(看似)简单的错误。

这是问题所在。

我有一个目录(dir),其中有一个子目录(subdir)。每个目录包含几个文件。因此,我的整体目录结构如下所示:

dir/
    __init__.py
    draw_lib.py
    subdir/
        __init___.py
        drawing.py

在我的drawing.py文件中,我尝试使用以下行导入draw_lib.pyfrom dir import daw_lib.py。它会产生ImportError: No module named dir。任何人都可以快速解释为什么我的drawing.py文件找不到我的dir目录吗?谢谢你的帮助。我完全迷失了,并希望一劳永逸地改进我的代码重用和目录结构。

1 个答案:

答案 0 :(得分:4)

您最初正在执行 draw_lib.py 。所以&#39;根目录&#39;在整个计划中 /

然后,当您尝试从dir导入draw_lib.py &#39; drawing.py 中它不起作用,因为根目录仍然是 / 而不是 dir /

import draw_lib

可以在 drawing.py 中使用。

实施例

/
    __init__.py
    main.py
    test/
        __init___.py
        case.py

main.py 中,输入:

import test.case

print 'main.py'

if __name__ == "__main__":
        test.case.test()

test / case.py 中,输入:

import main

def test():
        print 'case.py'

我的输出:

main.py
main.py
case.py

如您所见,我从嵌套文件中导入 main.py 。您将看到 main.py 两次。在 case.py 中第二次导入初始启动时。