Python 3.6.1 安装mlab 出现二进制和str文本格式转换问题

在尝试安装Python 3.6.1的mlab时遇到'a bytes-like object is required, not 'str''错误。问题根源在于Python 3.5与2.7在套接字返回值解码上的差异。通过修改distutils.util.py文件中rfc822_escape函数,将' '替换为' '.encode(),并相应地处理sep变量,解决了转换问题。经过修改后,在CMD中成功安装了mlab。" 121107603,11571465,MySQL binlog详解:作用、位置、配置与应用,"['数据库', 'MySQL', 'binlog']
摘要由CSDN通过智能技术生成

python3.6.1 安装mlab, 出现a bytes-like object is required, not 'str' 错误, 查找资料,

发现这里python3.5和Python2.7在套接字返回值解码上有区别。
先介绍一下 python bytes和str两种类型转换的函数encode(),decode()

  • str通过encode()方法可以编码为指定的bytes
  • 反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:

查找出错位置,C:\ProgramData\Anaconda3\Lib\distutils\util.py 此文件的 474行出错。


原文为:

def rfc822_escape (header):
    """Return a version of the string escaped for inclusion in an
    RFC-822 header, by ensuring there are 8 spaces space after each newline.
    """
    lines =header.split('\n')
    sep = '\n' + 8 * ' '
    return sep.join(lines)



修改为:

def rfc822_escape (header):
    """Return a version

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值