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

VS Code Jupyter中pickle保存模型报Read-only文件系统错误如何解决

问题原因

[Errno 30] Read-only file system: 'digits.pkl'报错的核心原因是:你当前运行的Jupyter Notebook工作目录为macOS的临时目录(从报错路径/var/folders/_x/q412fn8n5zxghsk407x6k_r40000gn/T/可确认),该目录默认无普通用户写入权限,使用相对路径保存文件会触发权限错误。

解决方案

你可以任选以下一种方法解决:

  • 方法1:切换到有权限的工作目录后保存
    首先执行代码查看当前工作目录:
    import os
    print(os.getcwd())
    
    确认输出为临时路径后,切换到你存放当前notebook的文件夹、或者你的个人用户目录下的任意文件夹,示例代码如下(替换为你自己的实际路径):
    os.chdir("/Users/你的用户名/Documents/ai练习/")
    
    切换完成后再执行原有的pickle保存代码即可正常写入。
  • 方法2:直接指定绝对路径保存
    不需要修改工作目录,直接修改保存部分的代码,主动指定有权限的写入路径即可:
    import pickle
    # 替换为你自己的实际保存路径
    full_save_path = "/Users/你的用户名/Documents/ai练习/digits.pkl"
    with open(full_save_path, "wb") as fp:
        pickle.dump(clf, fp)
    
  • 方法3:修改VS Code Jupyter默认工作目录配置(永久生效)
    打开VS Code设置,搜索jupyter.notebookFileRoot,将配置值修改为${fileDirname},保存配置后重启Jupyter内核。之后所有notebook的默认工作目录都会和notebook文件本身所在目录保持一致,只要你把notebook存在个人用户目录下,就不会再出现写入权限问题。

注意事项

请确保你指定的保存路径对应的文件夹已经提前创建,路径中如果包含中文、空格也不需要额外转义,直接填写完整路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:15:04