亲测解决UnicodeDecodeError: 'utf8' codec can't decode byte 0xcd in position 9: invalid continuation byte

解决办法:

如果是windows平台的话,在Python 2.7.15\Lib\site-packages目录下面新建一个文件名为sitecustomize.py
在里面写上

import sys
sys.setdefaultencoding('gbk')

就OK啦!


今天在做数据库作业的时候,要安装psycopg2

但是出现了如下问题

PS D:\下\psycopg2-master\psycopg2-master> python setup.py build
running build
running build_py
running build_ext
building 'psycopg2._psycopg' extension
Traceback (most recent call last):
  File "setup.py", line 650, in <module>
    ext_modules=ext)
  File "D:\Python 2.7.15\lib\site-packages\setuptools\__init__.py", line 130, in setup
    return distutils.core.setup(**attrs)
  File "D:\Python 2.7.15\lib\distutils\core.py", line 151, in setup
    dist.run_commands()
  File "D:\Python 2.7.15\lib\distutils\dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "D:\Python 2.7.15\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "D:\Python 2.7.15\lib\distutils\command\build.py", line 127, in run
    self.run_command(cmd_name)
  File "D:\Python 2.7.15\lib\distutils\cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "D:\Python 2.7.15\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "D:\Python 2.7.15\lib\distutils\command\build_ext.py", line 340, in run
    self.build_extensions()
  File "D:\Python 2.7.15\lib\distutils\command\build_ext.py", line 449, in build_extensions
    self.build_extension(ext)
  File "setup.py", line 297, in build_extension
    build_ext.build_extension(self, extension)
  File "D:\Python 2.7.15\lib\distutils\command\build_ext.py", line 499, in build_extension
    depends=ext.depends)
  File "D:\Python 2.7.15\lib\distutils\msvc9compiler.py", line 473, in compile
    self.initialize()
  File "D:\Python 2.7.15\lib\distutils\msvc9compiler.py", line 383, in initialize
    vc_env = query_vcvarsall(VERSION, plat_spec)
  File "D:\Python 2.7.15\lib\site-packages\setuptools\msvc.py", line 148, in msvc9_query_vcvarsall
    return EnvironmentInfo(arch, ver).return_env()
  File "D:\Python 2.7.15\lib\site-packages\setuptools\msvc.py", line 1257, in return_env
    exists),
  File "D:\Python 2.7.15\lib\site-packages\setuptools\msvc.py", line 1280, in _build_paths
    return os.pathsep.join(unique_paths)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xcd in position 9: invalid continuation byte

查了好多博客,各有各的说法,尤其是很多办法忽悠要把编码改成UTF-8,改了之后还是一样的出错,其实应该是改成gbk编码(windows平台),如果是linux可能是UTF-8

注:可以通过以下命令查看python默认编码

这里的reload很关键,有时候直接用sys用不了

import sys
reload(sys)
print sys.getdefaultencoding()

猜你喜欢

转载自blog.csdn.net/jankingmeaning/article/details/80629670