python运行代码出现'ascii' codec can't decode byte 0xb4 in position 11: ordinal not in range(128)

学习机器学习时出现的问题,百度了半天也没弄好,但知道了大概的原因

原因如下:因为默认情况下,Python采用的是ascii编码方式,而Python在进行编码方式之间的转换时,会将 unicode 作为“中间编码”,但 unicode 最大只有 128 那么长,所以这里当尝试将 ascii 编码字符串转换成"中间编码" unicode 时由于超出了其范围,就报出了如上错误。

既然知道了原因,那就好解决了不是

解决方法如下:

1.修改默认编码格式: 例如# encoding =utf-8

2.在/usr/lib/python2.7/site-packages/目录下添加一个sitecustomize.py文件,内容如下:

import sys
sys.setdefaultencoding('utf-8')

3.上面那个办法我没试过,但感觉应该可以,它原理上是修改了所有文件的编码格式。

然而我错的原因在于路径有中文。。。改成英文就好了,如果有同样情况的不妨一试

posted @ 2017-11-09 19:14  Eastruo  阅读(7553)  评论(0编辑  收藏  举报