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

Jupyter Notebook中Python相对/绝对导入报错求助

导入问题解决方案

问题分析

你的问题核心是Jupyter Notebook的工作目录与Python包结构不匹配:

  • 相对导入报错是因为Notebook执行时,当前src目录没有被识别为一个有父级的Python包;
  • 绝对导入找不到src是因为启动Notebook时的工作目录不是project,Python无法在模块搜索路径中找到src包。

解决方法

方法1:从project目录启动Jupyter Notebook

这是最直接的解决方案:

  1. 打开终端,切换到project文件夹:
    cd /path/to/your/project
    
  2. 在该目录下启动Jupyter Notebook:
    jupyter notebook
    
  3. 从Jupyter界面打开src/notebook.ipynb,此时无论是相对导入:
    from . import test
    
    还是绝对导入:
    from src import test
    
    都能正常运行。

方法2:在Notebook中临时添加模块搜索路径

如果不想修改启动目录,可以在Notebook的第一个单元格中添加以下代码,将project目录加入Python的模块搜索路径:

import sys
from pathlib import Path

# 获取当前notebook所在的src目录的父目录(即project目录)
project_dir = Path.cwd().parent
sys.path.append(str(project_dir))

执行完这段代码后,再使用绝对导入from src import test即可正常工作。

方法3:检查并设置PYTHONPATH(可选)

如果上述方法无效,可检查当前conda环境的PYTHONPATH是否包含project目录:

  1. 在终端中运行:
    echo $PYTHONPATH
    
  2. 如果输出中没有project目录的路径,临时添加:
    export PYTHONPATH="/path/to/your/project:$PYTHONPATH"
    
  3. 之后再启动Jupyter Notebook即可。

注:这种方式是临时生效的,关闭终端后会失效。若要永久生效,可将上述export命令添加到conda环境的激活脚本中(路径一般为~/miniconda3/envs/your_env/etc/conda/activate.d/env_vars.sh)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 08:12:22