pip 安装pandas报UnicodeDecodeError: 'ascii' codec can't decode byte 0xd5错

时间:2021-12-27 23:23:21

当python在window环境中通过pip安装pandas报标题这样的错,主要是因为python默认编码格式是:ascii

在https://www.python.org/dev/peps/pep-0100/文章中有如下介绍

pip 安装pandas报UnicodeDecodeError: 'ascii' codec can't decode byte 0xd5错

pip 安装pandas报UnicodeDecodeError: 'ascii' codec can't decode byte 0xd5错

Unicode Default Encoding

    The Unicode implementation has to make some assumption about the
encoding of 8-bit strings passed to it for coercion and about the
encoding to as default for conversion of Unicode to strings when
no specific encoding is given. This encoding is called <default
encoding> throughout this text.

For this, the implementation maintains a global which can be set
in the site.py Python startup script. Subsequent changes are not
possible. The <default encoding> can be set and queried using the
two sys module APIs:

sys.setdefaultencoding(encoding)
--> Sets the <default encoding> used by the Unicode implementation.
encoding has to be an encoding which is supported by the
Python installation, otherwise, a LookupError is raised.

Note: This API is only available in site.py! It is
removed from the sys module by site.py after usage.

sys.getdefaultencoding()
--> Returns the current <default encoding>.

If not otherwise defined or set, the <default encoding> defaults
to 'ascii'. This encoding is also the startup default of Python
(and in effect before site.py is executed).

Note that the default site.py startup module contains disabled
optional code which can set the <default encoding> according to
the encoding defined by the current locale. The locale module is
used to extract the encoding from the locale default settings
defined by the OS environment (see locale.py). If the encoding
cannot be determined, is unknown or unsupported, the code defaults
to setting the <default encoding> to 'ascii'. To enable this
code, edit the site.py file or place the appropriate code into the
sitecustomize.py module of your Python installation.



解决方法:在python/lib/site.py中加入  

import sys
reload(sys)
sys.setdefaultencoding('gbk')

pip 安装pandas报UnicodeDecodeError: 'ascii' codec can't decode byte 0xd5错

问题就解决了。。。。。。。。。。。。