首页 > 代码库 > Python ——异常备忘

Python ——异常备忘

为了便于在Python中安装第三方库,今天在Python下装了pip,分钟内安装完成,兴致勃勃地想一试pip安装的便捷性,

可惜一开始就被碰钉了丫!请看异常信息:

=======前面省略若干字=================
File "C:\Python27\lib\mimetypes.py", line 358, in init
db.read_windows_registry()
File "C:\Python27\lib\mimetypes.py", line 258, in read_windows_registry
for subkeyname in enum_types(hkcr):
File "C:\Python27\lib\mimetypes.py", line 249, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xb0 in position 1: ordinal
not in range(128)

解码异常,瞬间扫兴的节奏有木有!这个以前也没搞过,怎么办呢?看看异常信息吧,最后读取的File是"C:\Python27\lib

\mimetypes.py",那就到这去看看有木有什么和解码有关的吧(根据异常提示,相关代码应该在249之后啦,找default_encoding吧),

果然,在256行有哦: default_encoding = sys.getdefaultencoding(),字节0xb0是gbk编码范围内的(GB2312中汉字的编码范围为

,第一字节0xB0-0xF7),根据异常信息当前系统默认编码应该是‘ASCII’,改为gbk就ok啦!那么在256行之前加上以下代码:

if sys.getdefaultencoding() != ‘gbk‘: #写GB2312也可以
reload(sys)
sys.setdefaultencoding(‘gbk‘)

再运行,就可以安装咯!