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

Pickle保存机器学习模型时出现FileNotFoundError问题求助

Pickle保存机器学习模型时出现FileNotFoundError问题求助

看起来你已经做了不少排查工作——移到本地、核对路径拼写、确认内核环境,但还是遇到了FileNotFoundError,确实挺头疼的。我来帮你梳理几个可能的原因和解决办法:

一、先确认目标目录是否真的存在

你指定的路径是/Users/michael/Google_rf/,但有可能这个目录本身并不存在——Pickle在写入文件时,如果目标目录不存在,是不会自动创建它的,只会报错说找不到路径。

你可以先手动检查这个目录:

  • 打开Finder,导航到/Users/michael/,看看有没有Google_rf这个文件夹;
  • 或者在终端里运行命令:ls /Users/michael/Google_rf/,如果提示“No such file or directory”,那就是目录没创建。

如果目录不存在,先创建它:

import os
path = "/Users/michael/Google_rf/"
# 递归创建目录(包括不存在的父目录)
os.makedirs(path, exist_ok=True)

加上这段代码后再调用你的write_pickle函数,就不会因为目录不存在报错了。

二、优化路径拼接方式,避免手动拼接错误

你的write_pickle函数里用path + save_as + ".pickle"来拼接路径,虽然你现在的path已经带了斜杠,但手动拼接容易出现意外问题(比如后续修改路径时漏加斜杠)。推荐用更安全的os.path.join来处理路径拼接:

import os
import pickle

def write_pickle(path, model_object, save_as:str):
    # 用os.path.join自动处理路径分隔符,避免手动拼接的错误
    full_path = os.path.join(path, f"{save_as}.pickle")
    with open(full_path, "wb") as to_write:
        pickle.dump(model_object, to_write)

这种方式更可靠,尤其是跨平台使用时,也能避免多斜杠、漏斜杠这类低级错误。

三、确认当前工作目录的影响(排除特殊情况)

有时候Jupyter Notebook的当前工作目录和你预期的不一样,虽然你用的是绝对路径,但可以简单确认一下:
在Notebook里运行:

import os
print(os.getcwd())

如果输出和你预期的不符,也可能间接影响文件操作,但这个概率不高,权当排除特殊情况。

四、检查目录写入权限

还有一种可能是你没有往/Users/michael/Google_rf/目录写入文件的权限。可以尝试手动在这个目录里创建一个文本文件,如果创建不了,那就是权限问题。解决办法是在终端运行:

chmod u+w /Users/michael/Google_rf/

给当前用户添加该目录的写入权限。

你可以先从检查目录是否存在开始试,这是最常见的原因,希望能帮你解决问题!

备注:内容来源于stack exchange,提问作者M_Sabatino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:09:34