Spyder IDE运行Python文件报utf-8解码0xe9无效续字节错误
故障根因
该报错不是文件损坏或路径解码问题,本质是fit_main.py文件本身的编码格式和Spyder默认读取的UTF-8编码不匹配。0xe9是西语系Windows系统默认编码(CP1252/ISO-8859-1)下特殊字符é的字节值,教授修改文件时用系统默认编码保存了文件,没有转成UTF-8,导致你这边全量读取文件时报错。
逐单元格运行正常是因为该操作直接读取编辑器缓存中已解码的文本执行,没有走磁盘文件全量读取的解码流程,因此不会触发异常。
排查步骤
- 验证文件编码:用Notepad++打开
fit_main.py,右下角会直接显示当前文件编码;也可以在Python命令行执行以下命令确认异常字节位置:print(open(r'C:/Users/andre/Desktop/Eafit/8vo Semestre/Monitoría Panel Solar/OptiSurf/Fitness_Function/fit_main.py','rb').read()[660:670]) - 排除隐藏字符干扰:全选该文件所有内容,复制到新建的空白UTF-8编码py文件中,保存后替换原文件,测试是否可正常运行。
解决方案
临时适配方案
修改Spyder默认文件编码:顶部菜单栏→工具→偏好设置→编辑器→文件编码,将默认读取编码改为latin1或CP1252,重启Spyder后重新加载项目即可运行。
永久兼容方案
- 用文本编辑器打开
fit_main.py,执行编码转换操作:以Notepad++为例,选择顶部「编码」→「转为UTF-8编码」,保存文件后即可正常全量运行。 - 和协作的教授约定后续所有py文件统一用UTF-8编码保存,避免跨区域系统的编码冲突问题。
内容的提问来源于stack exchange,提问作者Andrew M.
相关产品推荐
相关产品推荐

