无法安装l18n,UnicodeDecodeError:“ cp950”编解码器无法解码字节

时间:2018-07-08 11:48:53

标签: python python-3.x cmd pip

运行时发生错误

  

pip install l18n

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\X\AppData\Local\Temp\pip-install-8urtlamu\l18n\setup.py", line 99, in <module>
        long_description=open(os.path.join('README.rst')).read(),
    UnicodeDecodeError: 'cp950' codec can't decode byte 0xc3 in position 2135: illegal multibyte sequence

尝试但没有成功:

chcp 65001

另一种选择:cmder

Config:
Windows 7
Python 3.6.4
Pip 10.0.1

谢谢!

1 个答案:

答案 0 :(得分:0)

这显然是l18n内部的一个错误:在setup.py中, long_description 参数是通过读取README.rst文件来构建的(这是一种经典的实现方式)

回溯显示:“ cp950”编解码器无法解码位置2135的字节0xc3。这是utf-8编码文本(包含非ASCII字符)的经典错误。

源代码存储在Bitbucket中:

long_description=open(os.path.join('README.rst')).read(),

在Python 3中open函数的行为已更改。您必须在此处设置文件编码为utf-8:

一种可移植的解决方法是定义一个函数:

import io

def read(path):
    with io.open(path, mode='r', encoding='utf-8') as f:
        return f.read()

并以此方式使用它:

long_description=read('README.rst')

有一个issue