admin管理员组

文章数量:1610917

在启动 Django 项目的时候报错如下,花了一点时间理解和解决。

报错

File “C:\Program Files\Python38\lib\socket.py”, line 756, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name) UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xc4 in position
0: invalid continuation byte

启动命令为:

python manage.py runserver

原因

从报错可知,问题出在 gethostbyaddr(name) ,调试可以发现,这个函数没有正确返回。

由图可见 utf-8 无法解析 0xc4。 因为 Windows 中文版的有些内容是 GBK 编码,而主机名很可能就是GBK 编码,而 python 默认采用 utf-8 编码,所以无法解析 GBK 的 0xc4。
如果把内容拷贝出来,找个转换网站就可以发现,这段16进制码是我的主机名:

主机名称可以在电脑属性里查看,也可以 cmd 输入以下命令查看:

ipconfig /all

解决

修改主机名,在我的电脑->属性->关于->重命名这台电脑,改为英文名称,重启电脑即可(如果电脑正好需要更新系统,更新后重启才有效)。

再次启动项目就成功啦:

本文标签: 报错UTFUnicodeDecodeErrordjangoCodec