[英]Imports in __init__ file
我正在 Python 中构建一个小项目。 我的结构是这样的:
src
- module_a
- __init__.py
- helper.py
- module_b
- __init__.py
- utils.py
- __init__.py
- main_script.py
这有效:
# src __init__ file contents
from src import module_a, module_b
# module_a __init__ file contents
from module_a.helper import func1
# module_b __init__ file contents
from module_b.utils import func2
这不起作用
# src __init__ file contents
from src import module_a, module_b
# module_a __init__ file contents
from src.module_a.helper import func1
# module_b __init__ file contents
from src.module_b.utils import func2
这会引发错误No module named src
。 这应该有效,对吧? 谁能详细解释为什么这不起作用?
在第二种情况下,您还没有导入 src,因此没有可以从中访问内容的 src 模块。 from src import module_a, module_b
初始化模块 module_a 和 module_b 并使用from src
部分来描述在哪里找到它们。 因此,module_a 和 module_b 是自由浮动的对象,完全不受 src 约束。 如果您希望它们成为 src 的属性,只需使用import src
,尽管您的工作案例似乎工作正常。 更多细节在这里: https://realpython.com/lessons/import-statement/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.