标题: python2.7.6奇怪的错误

时间: 2013-12-27 21:13:45

正文:

公司的 python 环境不知道怎么回事,pip 安装很多包都会报错:

  File "D:\program\Python27\lib\mimetypes.py", line 358, in init

    db.read_windows_registry()

  File "D:\program\Python27\lib\mimetypes.py", line 258, in read_windows_registry

    for subkeyname in enum_types(hkcr):

  File "D:\program\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)

        转载请注明出处 http://blog.hickwu.com/posts/313 by Hick

虽然知道是编码问题,但是楞不知道在哪里. 之前遇到过类似的 MIME 编码问题, 是注册表中出现中文导致的,但是按照同样的方法,注册表中没有找到中文项。

google 搜索到 这里 , 看有个回复基本上是说注册表中存在非法的 MIME 媒体类型。而解决方法似乎很简单,试了下果然奏效, 简单的把报错相关行注释掉即可。具体来说, 是把

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

修改成

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

查看更多文章
分享到:


分享到: