我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在执行一些别人的代码的时候,明明是没有任何语法错误的代码。但是确报错语法错误SyntaxError。这种问题究竟解决方案是什么呢?

苏南大叔:python如何解决SyntaxError:encoding problem问题? - syntaxerror-encoding
python如何解决SyntaxError:encoding problem问题?(图3-1)

大家好,我是苏南大叔,欢迎查看苏南大叔的博客。本文中将要描述,如何解决python代码报错SyntaxError:encoding problem:utf8的问题。测试环境:win10python@3.6.8pycharm@2021.3.2

现象描述

使用编辑器打开代码后,可以看出代码一切正常,语法也一切正常。

值得一提的是,对应文件顶部存在定义:

#!/usr/bin/env python
# -*- coding:utf8 -*-

但是,试图执行该代码的话,却被提示发生错误。错误提示如下:

SyntaxError: encoding problem: utf8

或者,您也许会碰到的是不同的报错信息,但是解决方案是一致的。

IndentationError: unexpected indent

这个极其诡异,令人匪夷所思的问题,该如何解决呢?

苏南大叔:python如何解决SyntaxError:encoding problem问题? - 编码错误
python如何解决SyntaxError:encoding problem问题?(图3-2)

解决方案一

解决方案也是非常简单,就是修改换行符。一般在编辑器的右下角会有换行符的选项,修改之后即可正常执行代码。
苏南大叔的测试环境是win10,所以换行符也是切换成了windows\r\n。如下图所示,截图的编辑器是pycharm

苏南大叔:python如何解决SyntaxError:encoding problem问题? - 切换换行符
python如何解决SyntaxError:encoding problem问题?(图3-3)

解决方案二

也可以直接删除文件顶部有关utf8的定义,也是可以运行的。比如删除下面类似的字符串:

# -*- coding:utf8 -*-

不过个人不推荐这个方案,因为对于这个shebang行内容,如果去掉的话,可能会引起其它的问题。
具体可以参考下面的文章:

相关文档

总结

这个问题真是比较诡异... 下面给出苏南大叔的python相关文章链接,如果对您有帮助,就加入收藏夹吧。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python