工作目录的形状如下:
* main_script.py
/ module_to_import
* __init__.py
* script_1.py
* script_2.py
在main_script.py中,我们有
from module_to_import import script_1
script_1.call_something()
在script_1.py中,我们有
import script_2
def call_something():
something = script_2.get_something()
something = something + 1
return something
运行main_script.py时 这将返回
ModuleNotFoundError:没有名为“ script_2”的模块
我知道可以通过直接将script_2导入main_script临时解决此问题。
是否有一种解决方法,即使main_script本身未导入script_2本身,script_1也可以可靠地导入script_2?
答案 0 :(得分:2)
当您的包被构造为子包时,可以在script_1.py中使用绝对导入
import module_to_import.script_2 as script_2
或相对亲戚:
from . import script_2
您可以在此处找到有关它的文档: https://docs.python.org/3/tutorial/modules.html#intra-package-references