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

Windows下Python项目中Jupyter Notebook的模块导入问题

解决Jupyter Notebook导入上级目录Python模块的问题

针对你在Windows下的项目结构:

\src\tracker\timer.py
\notebooks\notebook_files.ipynb

以下是几种可行的解决方法:

方法1:在Notebook中临时添加项目路径到Python搜索路径

这是最直接且无需修改系统设置的方法,在Notebook的开头执行以下代码:

import sys
from pathlib import Path

# 获取当前Notebook所在的文件夹路径
notebook_folder = Path.cwd()
# 定位到项目根目录(即src和notebooks的共同上级目录)
project_root = notebook_folder.parent
# 将src目录添加到Python的模块搜索路径中
sys.path.append(str(project_root / "src"))

# 现在可以正常导入模块
from tracker.timer import Timer

方法2:设置系统环境变量PYTHONPATH

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  2. 在「系统变量」区域点击「新建」,变量名填PYTHONPATH,变量值填src目录的绝对路径(比如D:\your_project\src)
  3. 重启Jupyter Notebook,之后直接用from tracker.timer import Timer即可导入

方法3:使用Python相对导入(需将目录转为包)

  1. 在src目录和tracker目录下各创建一个空的__init__.py文件,让Python将这些目录识别为包
  2. 在Notebook中使用正确的相对导入语法:
from ..src.tracker.timer import Timer

注意:Jupyter Notebook对相对导入的支持有时会受工作目录影响,若此方法无效,优先用前两种方法

你之前尝试的写法错误原因

  • 导入语句中混淆了文件路径分隔符(/)和Python包层级分隔符(.),正确的包层级应该用点连接
  • 相对导入需要目标目录是Python包(即包含__init__.py),否则无法被识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 13:13:10