在 Jupyter notebook 中导入本地模块

Import local modules in Jupyter notebook

我想在一个模块中外包一些对多个笔记本有用的通用功能(也用于测试目的)。当前目录结构如下所示

木星/
├─ 笔记本/
│ ├─ 01笔记本1.ipynb
│ ├─ ...
├─ 源码/
│ ├─ module_a/
│ │ ├─ __init__.py
│ │ ├─ func_a.py
│ ├─ module_b/...
├─ 测试/...
├─ 数据/...
├─ .../

func_a.py中有一个简单的函数def print_a(): print('a')

但是,当我想通过使用(我认为有意义的)

01 Notebook 1.ipynb 中导入和使用 module_a
from .. src.module_a import print_a

我得到了 ImportError: attempted relative import with no known parent package。我究竟做错了什么?我正在使用 Python 3.9.

我会尝试 append the src directory to the system path 像这样:

import sys
sys.path.append("/path/to/your/src")

from src.module_a import a

请注意,您可以使用笔记本根目录的相对路径,而不是像上面示例中那样的绝对路径,因此如下:

sys.path.append("src")

应该也可以