ImportError: 没有名为的模块。

17 浏览
0 Comments

ImportError: 没有名为的模块。

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

我试图简化我的混乱目录结构并利用Python的代码重用功能,但我遇到了一个对我来说不可解释的 ImportError 错误。在过去的几个小时里,我一直在阅读关于Python的 importmodulepackage 特性的内容(这里这里这里这里等等),但我仍然无法解决这个(看起来)简单的错误。

这就是问题所在。

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

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

在我的 drawing.py 文件中,我尝试使用以下行导入 draw_lib.py: from dir import daw_lib.py。结果出现了一个 ImportError: No module named dir。有人能否快速解释一下为什么我的 drawing.py 文件找不到我的 dir 目录?感谢任何帮助。我完全迷失了,真的很想一劳永逸地改善自己的代码重用和目录结构。

admin 更改状态以发布 2023年5月23日
0
0 Comments

你最初执行了 draw_lib.py。所以整个程序的 '根目录' 是/

然后,在 drawing.py 中尝试 'from dir import draw_lib.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 中导入它时。

0