本人在Ubuntu使用sublime text3运行Python程序时遇到编码问题:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 39: ordinal not in range(128)
此问题出现在:import matplotlib.pyplot as plt 语句中
其原因是matplotlib库中使用了不符合当前sublime text3中Python编码环境的语句,在命令行不会出现此问题。
解决方法:
在Python程序最前面加上以下语句:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
将默认编码设置为utf-8
此时问题解决,但是在每个py脚本加上这句话太麻烦,这时我们只需在出问题的地方加上这三句话。
例如:我在导入matplotlib时出现编码问题,找到编码出错的文件为__init__.py
我们只需在这个__init__.py文件中加入上面三行指令,以后使用matplotlib的py脚本就不会出现此编码问题。
找到__init__.py文件可通过在matplotlib处右键,使用Anaconda的Goto Definition功能。当然也可通过其他方式找到此文件。
__init__.py: