繁体   English   中英

在 __init__ 文件中导入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM