我正在尝试通过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
目录?感谢您的帮助。我完全迷失了,真的很想一劳永逸地改进我的代码重用和目录结构。
您最初正在执行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.
供参考,请参阅此链接, https://askubuntu.com/a/1163934/1748542
只需将链接答案中提到的代码行添加到根 init.py 或 main.py 或任何此类文件。 它应该像魅力一样起作用