首页 > 解决方案 > 导入子模块然后从脚本调用函数

问题描述

我确定这必须是重复的,但我找不到答案。

我有以下设置:

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'

标签: python-3.x

解决方案


submod\__init__.py(我假设现在是空的)中,添加以下行:

from . import subscript1

这使得subscript模块可以直接在模块中访问submod

注意:__init__.py项目根目录中的 不是必需的。


推荐阅读