VS Code中Jupyter内核启动失败:PermissionError [WinError 32] 无法处理.ipython历史文件
VS Code中Jupyter内核启动失败:PermissionError [WinError 32] 无法处理.ipython历史文件
看起来你遇到的是Jupyter内核启动时因为.ipython历史文件被占用导致的权限错误,而且常规的重启、删除文件方法都没奏效,这种情况确实挺闹心的。我给你几个针对性的解决思路,你可以按顺序试试:
强制删除占用文件(进阶版)
那个删不掉的history.sqlite-journal文件大概率是系统进程或者后台服务在静默占用,你可以试试这两个方法:- 进入Windows安全模式启动:重启电脑时按住Shift键,选择“疑难解答”->“高级选项”->“启动设置”->“重启”,然后选择“4) 启用安全模式”。进入安全模式后,直接去
C:\Users\UserName\.ipython\profile_default\目录下删除history.sqlite和history.sqlite-journal两个文件,安全模式下只有基础服务运行,大概率能释放文件锁。 - 用管理员命令行强制删除:按下Win+X选择“Windows终端(管理员)”,输入以下命令(替换成你的实际用户名):
其中del /f /q "C:\Users\UserName\.ipython\profile_default\history.sqlite-journal" del /f /q "C:\Users\UserName\.ipython\profile_default\history.sqlite"/f参数强制删除只读文件,/q参数静默执行不弹出确认提示。
- 进入Windows安全模式启动:重启电脑时按住Shift键,选择“疑难解答”->“高级选项”->“启动设置”->“重启”,然后选择“4) 启用安全模式”。进入安全模式后,直接去
绕开原历史文件路径
如果删除文件始终失败,我们可以让Jupyter使用新的历史文件:- 打开命令提示符,输入
jupyter notebook --generate-config生成Jupyter配置文件(如果已经生成过可以跳过这步)。 - 找到生成的配置文件
C:\Users\UserName\.jupyter\jupyter_notebook_config.py,用VS Code打开。 - 搜索
c.HistoryManager.hist_file这一行,把注释去掉(删掉前面的#),然后修改路径为新的位置,比如:c.HistoryManager.hist_file = 'C:\\Users\\UserName\\.jupyter\\custom_history.sqlite' - 保存配置文件后,重启VS Code再尝试启动Jupyter内核。
- 打开命令提示符,输入
重置Jupyter环境
有时候是当前Python环境中的Jupyter组件损坏导致的问题:- 打开命令提示符(如果用虚拟环境先激活),执行以下命令卸载并重装Jupyter相关组件:
pip uninstall -y jupyter ipykernel ipython pip install jupyter ipykernel ipython - 重装完成后,在VS Code的命令面板(Ctrl+Shift+P)执行“Jupyter: Select Kernel”,重新选择当前Python环境的内核试试。
- 打开命令提示符(如果用虚拟环境先激活),执行以下命令卸载并重装Jupyter相关组件:
检查文件夹权限
有可能是.ipython文件夹的权限设置出了问题:- 右键点击
C:\Users\UserName\.ipython文件夹,选择“属性”->“安全”选项卡。 - 点击“编辑”,找到你的当前用户账户,确保勾选了“完全控制”的允许权限,点击确定保存后,再尝试删除文件或启动内核。
- 右键点击
如果以上方法都没效果,你可以临时关闭Windows Defender的实时保护(测试后记得立即开启),有时候杀毒软件的实时扫描会悄悄锁定文件导致无法操作。
备注:内容来源于stack exchange,提问作者Diana
相关产品推荐
相关产品推荐

