问题
我有以下目录结构:
.
└── main_module
├── __init__.py # init1
└── my_module
└── __init__.py # init2
└──my_module
└── __init__.py # init3
└── file1.py (with awesome_func())
└── file2.py
我想从file1.py
导入awesome_func()
,如下所示:
from main_module.my_module.file1 import awesome_func
这样我就不必像这样重复my_module
了:
from main_module.my_module.my_module import awesome_func
我的(失败的(方法
我尝试过例如像这样修改init2
:
from .my_module import file1
它允许我这样做:
from main_module.my_module import file1
file1.awesome_func()
但还没有找到一种方法来实现我最初的意图:
from main_module.my_module.file1 import awesome_func
运行上面的线路当前收益率:
ModuleNotFoundError:没有名为'main_module.my_module.file1'的模块
我想我也需要修改init3
,但我不确定如何修改。
在__init__
3中使用__all__
并将file1.py导入为
from . import file1
__all_ = ['file1']
在__init__
2中执行
from .my_module import *
__all__ = ['file1']`
这将执行所需的导入方式