我正在尝试通过Python学习编程,所以如果这是一个荒谬简单的问题,我会提前道歉。
我正在尝试简化我复杂的目录结构并利用Python的一些代码重用功能,我遇到了一个令人费解的ImportError
错误。在过去的几个小时里,我一直在阅读Python的import
,module
和package
功能(here,here,here,和here等等,但我仍然无法解决这个(看似)简单的错误。
这是问题所在。
我有一个目录(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
目录吗?谢谢你的帮助。我完全迷失了,并希望一劳永逸地改进我的代码重用和目录结构。
答案 0 :(得分:4)
您最初正在执行 draw_lib.py 。所以'根目录'在整个计划中 / 。
然后,当您尝试从dir导入draw_lib.py ' 在 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 中第二次导入初始启动时。