• Python 2.7安装setuptools时的UnicodeDecodeError解决办法


    我猜~~~很多一开始学习python的同学们一定也遇到了这个问题,在安装setuptools时候会遇到UnicodeDecodeError的错误。

    我学的是3.x,但是周围的人都说2.7好,╮(╯▽╰)╭一开始我也不在乎,但是工作需要使用mongodb,但是它的包暂时只有2.7,我点点点点。

    无奈我也就换了版本,改为2.7,但是问题来了,当我想安装setuptools的时候,恶心的错误来了。真的不知道安装这种成熟的工具还有这种问题。

    在经过各种谷哥、度娘之后,有的说在代码中制定编码,试了不行,有的说是2.7自身的bug,根据其修改,发现好了。

    先分享出来,我的修改方法。


    1.下载获得setuptools 的py文件,执行后出现报错内容如下:

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

    2.在python的安装目录下,一般是c:python2.7Libmimetypes.py

    这是在search到的一个解决方案的地址:http://bugs.python.org/review/9291/diff/1663/Lib/mimetypes.py

    根据该内容来修改mimetypes.py文件,并保存

    现在把不同的地方贴出来:

    修改一

    原文件:

    1  import sys
    2  import posixpath
    3  import urllib
    4  try:
    5      import _winreg
    6  except ImportError

    需要改为:

    1  import sys
    2  import posixpath
    3  import urllib
    4  from itertools import count
    5  try:
    6      import _winreg
    7  except ImportError

    修改二

    原文件:

    def enum_types(mimedb):
                i = 0
                while True:
                    try:
                        ctype = _winreg.EnumKey(mimedb, i)
                    except EnvironmentError:
                        break
                    try:
                        ctype = ctype.encode(default_encoding) # omit in 3.x!
                    except UnicodeEncodeError:
                        pass
                    else:
                        yield ctype
                    i += 1

    需要修改为:

    def enum_types(minmedb):
        for i in count():
            try:
                yield_winreg.EnumKey(minedb,i) #之前有回复说,错了,已改,没注意。。。检讨检讨
            except EnvironmentError:
                break

    3.删除mimetypes.pyc,这个应该是备份的源文件,发现没有删除这个文件的还是不行

    4.在cmd重新再执行安装的命令,试试

    应该可以了

    参考的博客,在此,也是在问题解决之后看到的这个,早看到就好了,有改好的文件可以下载哦!

    1.http://www.aax9.com/2014/01/21/95.html

    还有一个,maybe也可以

    2.http://blog.csdn.net/hugleecool/article/details/17996993

  • 相关阅读:
    微服务安全(二)OAuth 2.0
    微服务安全(一)
    Spring Security 学习+实践
    Dubbo 学习(二)服务注册与发现
    Dubbo 学习(一)
    Spring Cloud Hystrix 学习(三)请求合并
    Spring Cloud Hystrix 学习(二)熔断与降级
    Spring Cloud Hystrix 学习(一)
    Spring Cloud Gateway 学习+实践
    Spring Cloud Zuul 学习+实践
  • 原文地址:https://www.cnblogs.com/karasjiang/p/3703759.html
Copyright © 2020-2023  润新知