gpt4 book ai didi

python 从另一个模块导入本地模块

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:21 30 4
gpt4 key购买 nike

我有以下结构:

root/
folder1/
main.py
secondary.py
folder2/
test.py

main.py 代码始终从 root 文件夹运行,因此在 main.py 上我有一个

from folder1.secondary import * 

这样我就可以在 main.py 上使用它的函数 - 效果很好

tests.py上,我这样做:

from root.folder1.main import myfunction 

(这是我需要测试的唯一函数)但它失败了,说“ModuleNotFoundError:没有名为'folder1.secondary'的模块

root 位于 sys.path

我不明白为什么直接导入 main.py 可以工作,但从另一个文件夹导入却不行。我该如何解决这个问题?

谢谢

最佳答案

您必须有一个名为 __init__.py 的文件位于每个目录中,以便 Python 解释器将该目录视为可以从中导入内容的模块。该文件可以为空,但必须这样命名。

您的新目录结构将如下所示:

root/
__init__.py
folder1/
__init__.py
main.py
secondary.py
folder2/
__init__.py
test.py

然后您可以导入您的main.pytest.py通过这样做from root.folder1.main import myfunction .

关于python 从另一个模块导入本地模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54831843/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com