如何使用相对导入从父文件夹中的脚本导入函数。

6 浏览
0 Comments

如何使用相对导入从父文件夹中的脚本导入函数。

在脚本中如何导入一个函数,该函数定义在父文件夹的子文件夹中?

在以下文件夹结构中,我想要使用:

root_folder/
    utils_folder:
        __init__.py
        helper_functions.py(其中定义了Function_A)
    module_A_folder:
        Script_A.py(将导入并使用Function_A)

Script_A.py 需要使用 Function_A。

utils_folder 的 __init__.py 定义为:

from .helper_functions import Function_A

当我尝试在 Script_A.py 中像这样导入 Function_A:

from ..utils import Function_A

我收到了以下错误:

ImportError: attempted relative import with no known parent package

如何让这个工作?我使用的是 Python 3.9 x64。

0
0 Comments

问题的原因是在尝试使用相对导入时出现了错误。具体来说,尝试从父文件夹中的脚本中导入一个函数。然而,尝试的方法导致了一个ModuleNotFoundError错误,指出找不到名为utils_folder的模块。

解决这个问题的方法是使用正确的相对导入语法。在这种情况下,应该使用..来表示父文件夹。以下是正确的解决方法:

from ..utils_folder.helper_functions import Function_A

这样,就可以成功地从父文件夹中的utils_folder模块中导入Function_A函数。通过使用正确的相对导入语法,可以避免ModuleNotFoundError错误的出现。

0