ModuleNotFoundError->导入的模块无法导入另一个模块

时间:2018-07-12 15:49:44

标签: python python-3.x python-import

工作目录的形状如下:

* 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?

1 个答案:

答案 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