本地测试写好脚本,换个环境运行flask程序,出现如下问题

File "D:\Python\lib\http\server.py", line 139, in server_bind
    self.server_name = socket.getfqdn(host)

File "D:\Python\lib\socket.py", line 677, in getfqdn
    hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd2 in position 0: invalid continuation byte

一看编码的问题,稍微百度后发现时电脑名称时中文引起的,大多文件都是需要直接改电脑名称。

这里给出直接改python文件的方法。 

首先我们找到抛出异常的文件所在的位置

就是上面抛出异常的位置" D:\Python\lib\socket.py",这个文件,找到出错那一行。

解决思路:

由于是编码出现问题,所以我们找到哪个地方获取我们的电脑名称,我们直接在py文件里面改成英文就好了。

name=gethostname()  #  这一行就是获取本机的名称

然后抛出异常的函数是这个 gethostbyaddr(name)
所以我们在它调用前修改为英文。

亲测有效,虽然可能会引起未知的BUG,但是总比该电脑名称好( 改了很多东西会自动改。。。。)

 

Flask 解决电脑名称为中文,不用改电脑名称!

溜了溜了。。。。

相关文章: