Python中的相对导入
📁 python, 问题, 帮助
有一段时间(由于相对导入被取消),我无法正常解决以下问题:
假设程序结构如下
app/ __init__.py foo/ __init__.py handler.py
如何从模块 handler.py 中加载包 foo 中的某些内容?
关键在于包名 foo 是未知的,我是通过 importlib 加载它的。
目前我找到了这样一个权宜之计:我截取变量 __name__ ,它在 handler.py 中等于 'foo.Handler' ,即像这样
foo_name = __name__.rsplit( '.' , 1 )[ 0 ] 然后我加载我需要的模块
needle_module = importlib.import_module(foo_name + '.some_module')