VS Code运行ipynb文件报[WinError 1392]错误如何修复
问题根因
报错指向的C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\http是微软商店分发的Python 3.9内置标准库目录,WinError 1392直接说明该目录对应的磁盘文件或文件系统索引已损坏。你之前反复安装、卸载多版本Python的操作,很容易导致WindowsApps这个系统受保护目录下的UWP应用残留错乱,哪怕你手动切换其他解释器,VS Code的Jupyter内核缓存如果残留了这个损坏版本的路径引用,运行导入语句时还是会命中坏路径触发报错。
仅重装Python能否解决?
不能直接解决。WindowsApps目录的读写权限由系统强制接管,不管是微软商店内的重装按钮,还是python.org下载的普通安装包,都没有权限直接覆写该目录下的损坏残留文件,必须先清理损坏残留、修复文件系统错误后再重新配置环境才能彻底解决。
分步修复方案
按以下顺序操作,完成后即可恢复Notebook正常运行:
- 清理所有微软商店渠道的Python残留
打开系统「设置-应用-安装的应用」,搜索所有发布者为Python Software Foundation的Python应用,覆盖所有3.x版本全部执行卸载。卸载完成后检查C:\Program Files\WindowsApps路径,所有名称前缀为PythonSoftwareFoundation.Python.的文件夹如果仍存在,先将WindowsApps目录的所有者修改为当前登录的管理员账户、授予当前账户完全读写权限后,将这些残留文件夹全部删除。 - 修复系统文件与磁盘错误
以管理员身份打开PowerShell或命令提示符,依次执行以下系统修复命令:
执行sfc /scannow dism /online /cleanup-image /restorehealth chkdsk C: /fchkdsk命令时如果提示占用无法执行,输入Y确认下次系统重启时自动扫描修复,之后手动重启电脑等待磁盘扫描完成再进入系统。 - 重新部署开发用Python环境
不要使用微软商店分发的Python版本做开发,直接从Python官方下载对应版本的exe安装包,安装时勾选Add Python to PATH选项,自定义安装路径到非系统受保护目录(例如C:\Dev\Python310这类自行创建的非WindowsApps/Program Files目录),安装完成后新开终端执行python --version,确认输出的安装路径是你自定义的路径、而非WindowsApps下的路径即可。 - 重置VS Code解释器缓存
打开VS Code,按Ctrl+Shift+P调出命令面板,搜索执行Python: Clear Interpreter Cache命令清除所有历史解释器缓存,重启VS Code后重新选择你刚安装的自定义路径Python作为Jupyter内核,在对应环境中重新安装gym、matplotlib等依赖,再运行ipynb文件即可正常执行。
内容的提问来源于stack exchange,提问作者Vladimir Belik
相关产品推荐
相关产品推荐

