Python启动时错误:Failed calling sys.__interactivehook__ (UnicodeDecodeError: 'gbk' codec can�


今天,在Anaconda prompt启动python遇到了如下错误:

UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xaf in position 553: illegal multibyte sequence

 

看了看出错跟踪,查看了如下位置:

C:\ProgramData\Anaconda3\lib\site.py", line 439

如下图所示,发现是读取history指定的路径的文件出错,于是就通过python看了看

os.path.join(os.path.expanduser(’~’),’.python_history’)的计算所得路径为(注意:???表示电脑用户名,每个人设置不同,请参照自己实际情况):

C:\Users\???\.python_history

 

打开上述文件,发现是上次关闭之前的python命令记录等,里面有汉字注释,Python的命令窗口的本身编码为来自系统设置的GBK引起的文件存成了gbk编码。如果历史记录对你来说没什么用处,最简单的办法就是删除掉.python_history文件,就可以了。我自己是通过如下方式解决的,操作系统是Windows 10 1803 (April 2018 Update) 以上版本的话,可以"Region" - “Administrative” - “Change system locale” - "Region Settings"中选中 "Beta: Use Unicode UTF-8 for worldwide language support"选项。