从父包导入模块

Importing a module from a parent package

我有这个目录结构

src
|
|\Lib
| |__init__.py
| |utils.py
|  \Scripts
|   |__init__.py
|   |myscript.py
|__init__.py

我需要在 myscript.py 中导入 utils.py 但是 from ..utils import function 给了我

ImportError: attempted relative import with no known parent package

所以我的尝试是通过

将父包添加到路径中
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).resolve().parents[1]))

在最里面的 __init__.py(在 Scripts 文件夹下)没有任何成功。

我在这里错过了什么?

要更好地理解如何处理此类问题,我的建议是阅读此 post: Relative imports for the billionth time

您的问题的一种解决方案如下:

  1. 有这个文件夹结构
src
|
|\Lib
| |__init__.py
| |utils.py
|  
|\Scripts
| |myscript.py
  1. 将此保存在您的 myscript.py
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).resolve().parents[1]))

并将from ..utils import function更改为from Lib.utils import function

这是解决问题的一种方法。