python-3.x - 导入子模块然后从脚本调用函数
问题描述
我确定这必须是重复的,但我找不到答案。
我有以下设置:
example
├── __init__.py
├── submod
│ ├── __init__.py
│ ├── subscript1.py
│ └── subscript2.py
└── toplevel.py
当我从命令行运行时subscript1
,我想调用一个函数:toplevel
python toplevel.py
我可以执行以下操作并且它有效:
from submod import subscript1
subscript1.my_func()
但我想做的是:
import submod
submod.subscript1.my_func()
这给出了一个错误:
AttributeError: module 'submod' has no attribute 'subscript1'
解决方案
在submod\__init__.py
(我假设现在是空的)中,添加以下行:
from . import subscript1
这使得subscript
模块可以直接在模块中访问submod
。
注意:__init__.py
项目根目录中的 不是必需的。