现在的位置: 首页 > 软件测试 > 测试工具 > 软件测试 > 正文

Python报错UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe0 in position 0: ordinal not in range(128)

2014年07月30日 测试工具, 软件测试 ⁄ 共 556字 ⁄ 字号 暂无评论 ⁄ 阅读 5,011 次

Windows 8机器上安装Python2.7后,下载一些Package包进行setup时总是报错UnicodeDecodeError,如下:

File "C:\Python27\lib\mimetypes.py", line 250, in enum_types

ctype = ctype.encode(default_encoding) # omit in 3.x!

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)

在网上搜索到的解决方法如下:

1. 这是Python 2 mimetypes的bug

2. 需要将Python2.7\lib\mimetypes.py文件中如下片段注释或删除:

try:
    ctype = ctype.encode(default_encoding) # omit in 3.x!
except UnicodeEncodeError:
    pass

具体的解释详见:

http://stackoverflow.com/questions/4237898/unicodedecodeerror-ascii-codec-cant-decode-byte-0xe0-in-position-0-ordinal