早上还在用spyder分析数据,到下午再打开电脑就发现spyder闪退,利用anaconda的prompt进行启动,发现如下报错:
(base) PS C:\Users\LittleSun> spyder
Traceback (most recent call last):
File "D:\Anaconda3\Scripts\spyder-script.py", line 10, in
sys.exit(main())
File "D:\Anaconda3\lib\site-packages\spyder\app\start.py", line 237, in main
mainwindow.main(options, args)
File "D:\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 1992, in main
mainwindow = create_window(MainWindow, app, splash, options, args)
File "D:\Anaconda3\lib\site-packages\spyder\app\utils.py", line 292, in create_window
main.post_visible_setup()
File "D:\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 1222, in post_visible_setup
self.projects.reopen_last_project()
File "D:\Anaconda3\lib\site-packages\spyder\plugins\projects\plugin.py", line 578, in reopen_last_project
self.open_project(path=current_project_path,
File "D:\Anaconda3\lib\site-packages\spyder\plugins\projects\plugin.py", line 433, in open_project
project_type_class = self._load_project_type_class(path)
File "D:\Anaconda3\lib\site-packages\spyder\plugins\projects\plugin.py", line 864, in _load_project_type_class
config.read(fpath)
File "D:\Anaconda3\lib\configparser.py", line 697, in read
self._read(fp, filename)
File "D:\Anaconda3\lib\configparser.py", line 1020, in _read
for lineno, line in enumerate(fp, start=1):
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa9 in position 226: illegal multibyte sequence
查找网上各种解决办法,虽然很多都是'gbk'的问题,但是大家上面的的报错位置都不同。开始进行尝试。
spyder--reset虽然没有解决根本问题,但是依然发现了这样一个现象:reset重置spyder后,能够正常启动,于是新建项目,打开原本的项目文件夹,发现无法载入新项目,依然为'gbk'的问题,于是删除原项目文件夹中".spyproject"文件,新建项目并载入文件夹,成功。可以正常运行py文件,但是关闭spyder后重新打开,又出现了闪退的问题,报错相同。
重复以上步骤,发现以下规律:删除上次运行的项目文件夹中".spyproject"文件,spyder能够正常启动,打开其他项目,只要其中包含".spyproject"文件时都无法载入项目文件夹,删除后载入项目可以运行,运行后重新打开spyder依然闪退。
最后发现是由于我运行的py文件名称包含汉字,运行"汉字.py"后就会造成spyder再次启动时闪退,不运行只是存在项目文件夹中时则不会引发这个问题,猜测可能是".spyproject"会保存文件路径,中文会造成干扰,因此大家在遇到和我相同的问题发现spyder无法启动时,可以尝试以下操作:
在之前用spyder4时,并没有现在这些问题,汉字名称的py文件也不会出现问题,spyder5中bug很多,也在不断迭代更新,不如spyder4更加稳定。不过我也只是发现了这一点问题,没有搞懂为什么在project中就不可以运行"中文.py",但是不打开任何project,只运行单个文件,不会有任何问题,所以问题还是出在".spyproject"文件夹上,猜测可能是这个文件夹中保存文件路径时,中文会造成问题,虽然不明白具体是为什么,但是多次试验,方法确实有效,希望能帮有同样情况的小伙伴解决问题。