Python 2.x 执行pip install spyder 或者pip install *出现编码异常

错误提示出现某个字节不能使用ascii或者utf8解析

原因:安装的文件包含一些字符不能使用ascii或者utf8编码解读,一般是这些文件可能包含中文,比如用gbk编码方式保存这些中文然而,python 2.x 默认的字符编码为:ascii.因此出现问题。

解决:

如果出现编码问题,怎么设置编码,百度可能会告诉你,使用:

# coding=<encoding name>

比如:# coding=utf-8

或者

# -*- coding: <encoding name> -*-

比如:# -*- coding: utf-8 -*-

但是,对于解决当前问题,这是胡扯,因为这是别人写的源代码,我还要跑去修改别人的代码吗?而且这些代码是缓存文件,出错后会删除。

这里主要涉及默认编码问题。

好了,你又百度如何设置默认编码,百度娘说:

查看当前默认编码:

>>import sys

>>sys.getdefaultencoding()

设置编码:

>>import sys

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

的确,默认编码改变了,但是现在如果在控制台执行命令pip install ***

依然存在问题,原因是,默认编码的确改变,但是只对当前的环境有效,使用cmd执行命令会执行新的环境,默认编码又变回了ascii.

另外种思路,如果能够在执行cmd命令执行前,就执行

sys.setdefaultencoding('utf-8')

这样命令,不就行了。

python的确在系统启动时,会调用Lib\site-packages\sitecustomize.py

于是解决方案出来啦:

在Lib\site-packages\sitecustomize.py编写设置默认编码的代码

一般:Lib\site-packages\sitecustomize.py会不存在,需要手动创建

需要设置不同默认编码,把gbk改为其他编码就行

 Lib\site-packages\sitecustomize.py的内容如下

# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('gbk')

 

测试:

cmd输入指令:

python

>>import sys

>>sys.getdefaultencoding()

显示的是你默认的编码

现在pip install spyder解决了编码问题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章