在使用pip安装包的时候报错ascii’ codec can’t decode byte 0xe2 in position…
报错信息
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe2 in position 1429: ordinal not in range(128)
以前好像见过类似的情况,所以搜了一下怎么修改python默认的编码方式。
方法一: 我这里尝试失败了,或许在别的地方可行,记录一下
搜索到的一个修改默认加载方法如下
修改默认的编码方式为utf-8。
vim /usr/lib/python3.6/mimetypes.py
在import之后加入如下代码
import requests, re, sys
reload(sys)
sys.setdefaultencoding("utf-8")
然而却报错了,后来发现这个方法是python27的方法,这里加载的时候会报错,没有reload
然后我就搜在python3中怎么使用这个方法
需要先引入importlib库
import importlib
importlib.reload(sys)
sys.setdefaultencoding("utf-8")
但是!还是不行,sys没有setdefaultencoding方法。
然后搜索出的结果是把这行注释掉,那我折腾半天,,,啥也没干呗。
其实还有个办法,可以看下sys下有没有类似的方法,这里猜测是版本升级换了名字。可以用dir查看一下。
方法二:修改安装包源码
没办法,找了半天没找见别的解决办法。就自己瞎搞一下吧,仔细看了下报错信息,是在setup.py中打开文件时报的错。
所以自己先把这个tar包下载下来解压。在setup文件中,哪里不对改哪里
其实就是增加encoding=‘utf-8’
然后再安装
python3 setup.py install
ok,搞定!