解决Python flask运行报错:flask UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd7 in position 2...

解决Python flask运行报错:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd2 in position 0: invalid continuation byte 

转载于:解决Python flask运行报错:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd2 in position 0: invalid c

原因:在python下lib文件夹里的socket.py文件中的name=gethostname()代码执行获取本机电脑名称时,遇到中文导致乱码报错。
解决办法:

  1. 直接改掉自己的中文电脑名称,改为英文名称,我建议如此,如果没有太多的关联文件、代码、软件的话。因为在这上面吃过太多的亏。
  2. 观察python下lib文件夹里的socket.py文件中此处代码
 name = name.strip()
    if not name or name == '0.0.0.0':
        name = gethostname()
    try:
        hostname, aliases, ipaddrs = gethostbyaddr(name)
    except error:
        pass
    else:
        aliases.insert(0, hostname)
        for name in aliases:
            if '.' in name:
                break
        else:
            name = hostname
    return name

很明显只需要将host设为0.0.0.0就好,不会再获取本机电脑名称:可以这样设置:app.run(host=“0.0.0.0.”, port=1234)
不起作用的话就直接在pycharm里设置Additional options:–host=0.0.0.0,如下图:
在这里插入图片描述
3. 修改代码:在python下lib文件夹里的socket.py文件中此处代码:hostname, aliases, ipaddrs = gethostbyaddr(name)前直接指定name=“gxg”,gxg是我的名字,可以改成其他英文名称

name = name.strip()
if not name or name == '0.0.0.0':
    name = gethostname()
try:
    name="gxg"#在这里修改
    hostname, aliases, ipaddrs = gethostbyaddr(name)
except error:
    pass
else:
    aliases.insert(0, hostname)
    for name in aliases:
        if '.' in name:
            break
    else:
        name = hostname
return name
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值