从同一文件夹导入,在外部文件夹中被 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 中,您必须使用 .
运算符在导入任何模块时指定当前目录。
在 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 中,您必须使用 .
运算符在导入任何模块时指定当前目录。