Python Can';t安装l18n,UnicodeDecodeError:&x27;cp950';编解码器可以';t解码字节

Python Can';t安装l18n,UnicodeDecodeError:&x27;cp950';编解码器可以';t解码字节,python,python-3.x,cmd,pip,Python,Python 3.x,Cmd,Pip,运行时发生错误 pip安装l18n 谢谢 这显然是l18n内部的一个bug:在setup.py中,long_description参数是通过读取README.rst文件构建的(这是一种经典的方法) 回溯显示:“cp950”编解码器无法解码位置2135处的字节0xc3。这是包含非ascii字符的utf-8编码文本的典型错误 源代码存储在Bitbucket中: long_description=open(os.path.join('README.rst')).read(), 在Python3中,o

运行时发生错误

pip安装l18n


谢谢

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

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

源代码存储在Bitbucket中:

long_description=open(os.path.join('README.rst')).read(),
在Python3中,
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')
关于这一点,有一个很好的解释

import io

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