首页 Python 正文
0

Python安装扩展模块时报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)

  • yiqingpeng
  • 2015-07-10
  • 0
  •  
安装curllib2模块时(cd C:\Python27\Scripts  easy_install curllib2),出现如下错误:
Traceback (most recent call last):
  File "C:\Python27\Scripts\easy_install-script.py", line 8, in <module>
    load_entry_point('setuptools==2.2', 'console_scripts', 'easy_install')()
  File "build\bdist.win32\egg\pkg_resources.py", line 353, in load_entry_point


  File "build\bdist.win32\egg\pkg_resources.py", line 2321, in load_entry_point
    except ValueError:
  File "build\bdist.win32\egg\pkg_resources.py", line 2048, in load


  File "build\bdist.win32\egg\setuptools\__init__.py", line 11, in <module>
  File "build\bdist.win32\egg\setuptools\extension.py", line 5, in <module>
  File "build\bdist.win32\egg\setuptools\dist.py", line 15, in <module>
  File "build\bdist.win32\egg\setuptools\compat.py", line 19, in <module>
  File "C:\Python27\lib\SimpleHTTPServer.py", line 27, in <module>
    class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
  File "C:\Python27\lib\SimpleHTTPServer.py", line 208, in SimpleHTTPRequestHandler
    mimetypes.init() # try to read system mime.types
  File "C:\Python27\lib\mimetypes.py", line 362, in init
    db.read_windows_registry()
  File "C:\Python27\lib\mimetypes.py", line 262, 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)


上Google查到方法是说由于一些中文的第三方软件修改注册表的值造成的编码问题,解决方法如下:
在lib目录下找到minetypes.py文件,用编辑器打开;
找到 default_encoding = sys.getdefaultencoding() 这一行,在此行下面添加如下代码:
       #注意缩进的是4个空格,而不是制表符
        if sys.getdefaultencoding() != 'gbk':#如果是繁体,将gbk改为big5
            reload(sys)
            sys.setdefaultencoding('gbk')
        default_encoding = sys.getdefaultencoding()


正在加载评论...