在Jupyter Notebook中导入模块 - 路径

6
我在我的Python项目中有以下结构:
BASE_DIRECTORY
¦- data
¦- notebooks
¦  \
¦   ***here are the jupyter notebooks***
¦   __init__.py
¦   analysis.ipynb
¦
¦- src
¦  \
¦   ***here are further modules***
¦   __init__.py
¦   configuration.py
¦

我想把 configuration.py 中的 Config 类导入到 jupyter 笔记本 analysis.ipynb 中。
我尝试了:
from ..src.configuration import Config

但是这会给我一个ValueError错误:
ValueError: attempted relative import beyond top-level package

有人能指导一下如何实现吗?我更喜欢使用相对路径而不是改变PATH变量。

我感觉我对Jupyter有些具体细节不清楚,例如似乎更难引用当前路径。


也许是因为你的根目录中没有 init.py 文件,但不确定。请检查一下。 - AlEmerich
涉及工作目录的问题在Jupyter中确实存在(不是说非确定性吗?),请参见此处讨论。使用sys.path变量是我唯一能推荐的最佳方式,@oppy的答案对我有效。 - matanster
1个回答

10

我看到你说你不想更改路径变量,但使用sys可以解决这个问题:

import sys
sys.path.append('..')

from src.configuration import Config

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接