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

Jupyter Notebook导入utils.py遇相对导入错误,求Pythonic方案或结构优化

Pythonic方式导入utils.py的可行方案

方案1:通过VS Code工作区配置识别资源目录

在仓库根目录phd-notebooks下创建.vscode/settings.json文件,写入以下配置:

{
    "python.analysis.extraPaths": ["${workspaceFolder}/notebooks"]
}

之后用VS Code打开phd-notebooks文件夹作为工作区,所有笔记本即可直接使用绝对导入:

from resources import utils

此方法无需修改代码,其他人克隆仓库后只要用VS Code打开根目录就能直接运行笔记本。

方案2:以仓库根目录为工作目录,使用完整包路径导入

  1. 给notebooks、resources、notebooks-group-1、notebooks-group-2目录都添加空的__init__.py文件,标记这些目录为Python包。
  2. 确保VS Code的工作目录是phd-notebooks(直接打开该文件夹即可)。
  3. 在笔记本中使用完整包路径导入:
from notebooks.resources import utils

这种方式完全符合Python包导入规范,其他人只要保持工作目录在仓库根目录就能正常运行。

关于仓库结构的说明

你的当前结构本身没有问题,但需注意:

  • Jupyter笔记本直接运行时,不会被当作包的一部分执行,因此无法使用..这类相对导入(相对导入仅适用于包内部模块的导入场景)。
  • 之前添加__init__.py无效,核心原因是工作目录设置在notebooks-group-1,导致Python无法识别上层的notebooks包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:35:26