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

运行test.py触发FileNotFoundError,Jupyter可正常加载指定路径模型文件

问题解决:Python脚本加载模型文件找不到路径,Jupyter却正常

问题场景

项目目录结构:

src/
   model/
      Logistic Regression_model.pkl
   test/
      test.py

在test.py中用以下代码加载模型:

logistic_model = joblib.load('../model/Logistic Regression_model.pkl')

运行test.py时报错:

FileNotFoundError: [Errno 2] No such file or directory: '../model/Logistic Regression_model.pkl'

但相同代码在Jupyter Notebook中运行完全正常。

原因分析

Python里的相对路径是基于终端运行脚本时的当前工作目录,而非脚本文件本身所在的目录:

  • Jupyter Notebook的工作目录默认是你打开Notebook时的目录(比如在src/test目录下打开Notebook,工作目录就是src/test),此时../model会正确指向src/model。
  • 若在src目录下直接运行python test/test.py,当前工作目录是src,../model会去src的上级目录查找model文件夹,自然找不到目标文件。

解决方案

方案1:用脚本绝对路径构建模型路径(推荐)

不管在哪运行脚本,都能准确定位模型文件,修改test.py代码如下:

import os
import joblib

# 获取当前脚本的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接模型文件路径并标准化(自动处理../这类相对路径)
model_path = os.path.normpath(os.path.join(script_dir, '../model/Logistic Regression_model.pkl'))
# 加载模型
logistic_model = joblib.load(model_path)

方案2:切换到脚本所在目录再运行

打开终端,先进入test.py所在的目录,再执行脚本:

cd src/test
python test.py

此时相对路径../model会正确指向src/model,即可找到模型文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:32:42