首页 > 解决方案 > 在另一个目录中导入脚本时出现导入错误

问题描述

在下面的目录结构中,我想运行dir_b中的代码,python run.py。

dir_a
 |- func_f.py
 |- func_g.py

dir_b
 |- run.py
 

func_f.py 的脚本是:

def f(x):
    return x**2

func_g.py 的脚本是:

from func_f import f

def g(x):
    return f(x) + 2

run.py 的脚本是:

import sys
sys.path.append('../')
from dir_a import func_g

y = func_g.g(3)
print(y)

在 dir_b 的目录中,我运行“python run.py”;但是,错误发生如下:

Traceback (most recent call last):
  File "run.py", line 3, in <module>
    from dir_a import func_g
  File "../dir_a/func_g.py", line 1, in <module>
    from func_f import f
ModuleNotFoundError: No module named 'func_f'

我写了“from dir_a import func_g”,但为什么会出现这个错误?我怎么解决这个问题?

标签: pythonpython-importimporterror

解决方案


成为func_g.py

if __name__ == '__main__':
    from func_f import f
else:
    import sys
    sys.path.append('../')
    from func_f import f

def g(x):
    return f(x) + 2

推荐阅读