Jupyter Notebook启动Python3内核遇权限错误:SetFileSecurity访问被拒
从你的报错栈能明确看出,问题出在Jupyter尝试写入内核连接文件时,无法设置文件的安全权限(win32security.SetFileSecurity抛出「访问被拒绝」),这在Windows环境下基本都是权限不足导致的。下面是几个逐步排查的解决方法:
以管理员身份启动Jupyter
这是最直接的解决方案:右键点击你的Anaconda Prompt(或者命令提示符),选择「以管理员身份运行」,然后在终端里输入jupyter notebook启动。管理员权限会让Jupyter拥有足够的权限去修改文件安全设置,避开访问被拒绝的问题。指定有权限的目录启动Jupyter
默认情况下Jupyter可能会在系统级目录(比如ProgramData)生成临时文件,这些目录的权限通常比较严格。你可以手动指定一个自己用户目录下的文件夹来启动Jupyter,比如:jupyter notebook --notebook-dir="C:\Users\你的用户名\Documents\Jupyter_Workspace"这样所有的临时文件和连接文件都会生成在你拥有完全权限的目录下,绕开系统目录的权限限制。
修改Jupyter的runtime目录配置
Jupyter的内核连接文件默认存在runtime目录里,你可以把这个目录改成自己有权限的位置:- 先生成Jupyter配置文件(如果还没有的话):
jupyter notebook --generate-config - 打开生成的配置文件,路径一般是
C:\Users\你的用户名\.jupyter\jupyter_notebook_config.py - 找到
c.NotebookApp.runtime_dir这一行,取消注释(删掉前面的#),然后设置成你有权限的目录,比如:c.NotebookApp.runtime_dir = "C:\\Users\\你的用户名\\.jupyter\\runtime" - 确保这个目录已经存在,或者Jupyter可以自动创建它(你需要有创建目录的权限)。
- 先生成Jupyter配置文件(如果还没有的话):
检查Miniconda目录的权限
右键点击C:\ProgramData\Miniconda3文件夹,选择「属性」->「安全」标签,确认你的用户账户拥有「写入」和「修改」的权限。如果没有,点击「编辑」按钮,添加你的用户账户并赋予相应权限。临时调整UAC级别(谨慎操作)
如果上面的方法都无效,可以临时降低Windows的用户账户控制(UAC)级别:打开控制面板->用户账户->更改用户账户控制设置,把滑块调到最低,重启电脑后再尝试启动Jupyter。注意这只是临时排查手段,问题解决后记得调回UAC级别,保障系统安全。
先从第一个方法开始试,大部分情况下管理员启动就能解决问题,如果不行再逐步尝试后面的方案。
内容的提问来源于stack exchange,提问作者user12297342




