You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter Notebook中通过相对路径导入Python模块?

解决Jupyter Notebook相对路径导入Python模块的问题

我来帮你搞定这个导入问题——Jupyter Notebook的工作目录特性确实很容易在这里让人踩坑,咱们先搞清楚核心原因,再一步步解决。

Jupyter的关键特性:工作目录≠Notebook文件目录

Jupyter Notebook默认的工作目录是你启动Notebook服务器时所在的文件夹,而不是.ipynb文件本身的存放目录。举个例子,如果你的项目结构是这样:

your_project/
├── config/
│   └── configuration.py  # 里面有Config()类
└── notebooks/
    └── analysis.ipynb     # 你要导入的Notebook

如果你在notebooks/文件夹下启动Jupyter,那当前工作目录就是notebooks/,直接用from ..config.configuration import Config这种相对导入会报错,因为Jupyter不认这种跨目录的相对路径语法(除非把项目当成正规Python包处理)。

不用修改系统PATH的解决方法

方法1:切换工作目录到项目根

你可以在Notebook开头用Python代码动态切换工作目录到项目根,这样导入路径就和普通Python脚本一致了:

import os

# 获取当前Notebook的绝对路径
notebook_abspath = os.path.abspath("analysis.ipynb")
# 根据你的目录结构,向上跳转至项目根(比如这里是从notebooks/跳到your_project/)
project_root = os.path.dirname(os.path.dirname(notebook_abspath))

# 切换工作目录
os.chdir(project_root)

# 现在可以正常导入了
from config.configuration import Config

方法2:临时向sys.path添加父目录

sys.path是Python查找模块的路径列表,我们可以临时把项目根目录添加进去(仅当前Notebook会话有效,不会修改系统全局PATH):

import sys
# 如果你的analysis.ipynb在notebooks/目录,".."代表父目录(项目根)
sys.path.append("..")

# 直接导入即可
from config.configuration import Config

方法3:用Jupyter魔法命令切换目录

Jupyter支持魔法命令%cd,可以快速切换工作目录,简单直接:

# 根据你的目录结构调整路径,比如从notebooks/回到项目根
%cd ../

# 导入模块
from config.configuration import Config

为什么会出现ValueError?

大概率是因为Jupyter找不到你要导入的configuration.py文件,导致后续初始化Config()类时出现路径相关的错误(比如读取配置文件时路径不对)。解决了模块导入的路径问题后,这个错误通常会跟着消失。


内容的提问来源于stack exchange,提问作者RaspyVotan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:08:16