从同一文件夹导入,在外部文件夹中被 jupyter 调用后

importing from same folder, after being called by jupyter in outside folder

在 jupyter notebook 的包外调用时,我无法从同一包中的其他模块导入模块中的文件。

我在名为项目的文件夹中有一个具有以下结构的项目:

├───data
│   ├───external
│   ├───interim
│   ├───processed
│   └───raw
├───docs
├───models
├───notebooks
│   ├───data_loading.ipynb
│   └───wandb
├───references
├───reports
│   └───figures
├───src
│   ├───data
│   │   │───datasets.py
│   │   │───data_util.py
│   │   └───__init__.py
│   ├───features
│   ├───__init__.py
│   ├───models
│   ├───visualization
│   └───__pycache__
└───wandb

从笔记本文件夹中的 jupyter 笔记本 data_loading.ipynb,我正在尝试以下操作:

import os
import sys
module_path = os.path.abspath(os.path.join('..'))
if module_path not in sys.path:
    sys.path.append(module_path)

from src.data.datasets import TransformersFromRaw

它给我错误信息:

ModuleNotFoundError: No module named 'data_util'

这源于尝试从与 datasets.py

相同文件夹中的模块导入函数
from data_util import check_cuda_available, tokenize_preserve_labels, substitute_navn

我试过将当前目录设置为项目文件夹,还是不行

尝试像这样导入 -

from .data_util import check_cuda_available, tokenize_preserve_labels, substitute_navn

在 python3 中,您必须使用 . 运算符在导入任何模块时指定当前目录。