Spyder 4.0.0调用pathlib.PurePath后编辑器被HTML代码替换求助
遇到Spyder 4.0.0编辑器被HTML代码覆盖?别慌,先看这几点!
哇,这简直是编程时最糟心的诡异bug之一!先别慌,咱们先搞清楚状况,看看能不能把你的代码找回来:
你的代码大概率没彻底丢失!先试试这些恢复方法
- 赶紧关闭Spyder,但绝对别保存当前被HTML覆盖的文件!一旦保存,原代码被覆盖的概率就高了
- 打开Spyder后,直接去顶部菜单栏找
File > Recover Unsaved Files,Spyder有自动保存机制,这里大概率能找到你之前编辑的代码版本 - 去你的项目文件夹里找找有没有备份文件:Spyder默认会生成后缀为
.bak的备份,或者看看.spyder-py3目录里的缓存文件 - 检查系统临时文件夹(比如Windows的
%temp%,Linux/macOS的/tmp),说不定能找到Spyder临时保存的代码副本
为什么会出现这种诡异情况?
这是Spyder 4.0.0版本的一个已知老bug,和它的Qt编辑器渲染逻辑有关:
- Spyder 4用Qt的QTextEdit组件处理编辑器和控制台的内容,当你运行单元格输出
pathlib.PurePath对象时,Spyder的输出渲染模块错误地把本该在控制台显示的内容解析成了HTML格式 - 更糟的是,这个错误解析的HTML内容被意外写入了当前编辑的文件缓冲区,直接覆盖了你原来的代码
怎么解决+预防?
- 优先恢复代码:按照上面的方法找回原代码后,立刻把代码备份到其他位置(比如复制到记事本或者其他编辑器)
- 升级Spyder:Spyder 4.0.0是非常旧的版本了,后续的Spyder 5、6版本已经彻底修复了这类渲染/输出覆盖的bug,赶紧升级到最新稳定版
- 临时替代方案(如果暂时没法升级):
- 运行代码时,别用
Ctrl+Enter直接运行单元格,改成把代码片段复制到控制台单独执行 - 输出路径时,把
pathlib.PurePath转成字符串再打印:print(str(pathlib.PurePath(root, subdir))),避免触发HTML渲染bug
- 运行代码时,别用
内容的提问来源于stack exchange,提问作者Potatoconomy
相关产品推荐
相关产品推荐

