问题描述
就在最近,在常用的spyder5新建了一个project,第二次打开的时候却闪退了,只能靠着reset spyder settings清除历史记录勉强续命。网上查了一下,做法也是大同小异的powershell spyder --reset,治标不治本。
一闪而过的错误栈长这个样子。
原因分析:
上面的错误栈看到是编码问题。
本来以为是代码里用中文写注释导致的,后来想了想以前也没少写中文。而且以前也常用spyder的project,并没有遇见过这个问题。
这次的不同点在于代码文件没有放在project根目录下,相对路径里还有中文,猜测可能是这个触发了编码问题。
解决方案:
顺着错误栈找到了C:\Anaconda3\Lib\configparser.py
这个文件(在自己的Anaconda安装路径下找一下),看到里面read
函数的encoding
默认值是None
,改成utf-8
,保存,重启spyder。问题解决。
不方便找函数的朋友直接用记事本Ctrl+F
搜索一下def read(self, filenames
就能找到了。
def read(self, filenames, encoding=None):
——>> def read(self, filenames, encoding='utf-8'):