permissionerror: [errno 13] permission denied 是因jupyter无法写入runtime临时文件(如jpserver-xxx-open.html)所致,根源在于c:usersww57ppdata oamingjupyter untime目录权限不足或文件被占用,需针对性清理、授予权限或重定向jupyter_runtime_dir。

PermissionError: [Errno 13] Permission denied 是什么文件在拦你
报错里带的路径就是关键线索,比如 PermissionError: [Errno 13] Permission denied: 'C:\Users\ww57\AppData\Roaming\jupyter\runtime\jpserver-18352-open.html',说明问题不在 notebook 文件本身,而是在 runtime 目录下的临时状态文件。Jupyter 启动时要写这个目录,关掉时要删它,一旦被系统策略、杀毒软件或上一次异常退出卡住,就会反复报这个错。
别急着改整个用户目录权限——先确认是不是这个目录被锁死:
- 打开任务管理器,结束所有
jupyter-notebook.exe、python.exe(尤其是后台没关干净的)进程 - 手动进到报错路径的父目录
C:Usersww57AppDataRoamingjupyter untime,看能不能手动删掉里面所有文件(如果删不掉,说明被占用或权限真受限) - 如果删得掉,清空后重试;删不掉,就进下一步
Windows 下 runtime 目录权限怎么调才安全有效
直接给 runtime 文件夹“完全控制”是最直接的解法,但要注意操作位置和范围:
- 路径必须是
C:Users\AppDataRoamingjupyter untime,不是安装目录里的 jupyter,也不是AppDataLocal下的其他临时文件夹 - 右键 → 属性 → 安全 → 编辑 → 选中当前用户(如
DESKTOP-XXXww57)→ 勾选“完全控制” → 应用 - 如果“编辑”按钮灰掉,先点“高级”,在“所有者”里把所有者改成当前用户,再回来勾权限
- 别顺手给 Administrators 组加权限,也不用改父级
jupyter文件夹——只动runtime就够了
不想碰系统目录权限?换一个 runtime 路径更省心
用环境变量重定向比改权限更可控,尤其适合公司电脑或多人共用设备:
- 新建一个你有完全写入权的文件夹,比如
C:jupyter_runtime - 在 PowerShell 或 CMD 里执行:
set JUPYTER_RUNTIME_DIR=C:jupyter_runtime - 然后立刻运行
jupyter notebook—— 它会自动在这个新路径下建runtime子目录并写文件 - 想永久生效?把这行加到系统环境变量(不是用户变量),或者写进启动脚本里
- 注意:这个变量只影响 runtime 文件,不影响 notebook 存储位置(那是
c.NotebookApp.notebook_dir控制的)
为什么改 notebook 工作目录也能绕过权限问题
像 Permission denied: Untitled.ipynb 这类错误,往往是因为 notebook 默认试图在系统保护路径(如 C:WindowsSystem32 或某些网络映射盘)下创建文件。这时候问题不在 Jupyter 自身,而在你启动它的那个命令行当前工作目录。
- 检查你敲
jupyter notebook时所在的路径,用cd确认 - 如果是在
C:根目录或C:Program Files下启动,Windows 默认禁止普通用户写入 - 最稳妥做法:先
cd到你自己建的文件夹(如C:my_notebooks),再运行jupyter notebook - 或者一劳永逸:生成配置
jupyter notebook --generate-config,然后在jupyter_notebook_config.py里取消注释并修改c.NotebookApp.notebook_dir = 'C:/my_notebooks'
真正容易被忽略的是:runtime 权限和 notebook 工作目录权限是两套独立机制,报错信息里带的路径决定了该修哪一块——盯着错误里那个具体文件路径,比盲目 chmod 或以管理员身份运行更可靠。











