Django的坑

在pycharm中运行代码示例是提示编码错误代码如下:

#!/usr/bin/env python
# -*-coding:utf-8-*-

from wsgiref.simple_server import make_server


def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return [b'<h1>Hello, web!</h1>']


httpd = make_server('', 8080, application)
print("Serving http on port 80000")
httpd.serve_forever()

  提示错误如下:

Traceback (most recent call last):
  File "D:/学习笔记/python/练习目录/前端/练习.py", line 24, in <module>
    httpd = make_server('', 8080, application)
  File "C:\python\python36\lib\wsgiref\simple_server.py", line 153, in make_server
    server = server_class((host, port), handler_class)
  File "C:\python\python36\lib\socketserver.py", line 453, in __init__
    self.server_bind()
  File "C:\python\python36\lib\wsgiref\simple_server.py", line 50, in server_bind
    HTTPServer.server_bind(self)
  File "C:\python\python36\lib\http\server.py", line 138, in server_bind
    self.server_name = socket.getfqdn(host)
  File "C:\python\python36\lib\socket.py", line 673, in getfqdn
    hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcb in position 0: invalid continuation byte

  

反正就是编码错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd2 in position 0: invalid continuation byte

Python3默认的是utf-8编码,中国程序员最苦逼的地方就是中文,程序遇到中文极大可能性会报错。出现编码问题,说明解码方式不对,可能是utf8解码中文出错,接着确认哪里出了问题。错误提示发现是 hostname, aliases, ipaddrs = gethostbyaddr(name)这句代码出了错误,这句代码是个函数,函数有参数,那先从参数入手,参数是name,那可能name是个中文,但是我的程序命名都是英文,那应该不是我的程序命名问题。经研究错误提示发现gethostbyaddr()函数是中文翻译就是获取主机地址,而传参是名字,那么name传入的就是主机名,也就是我们电脑名。我的电脑名是中文,是不是改成英文就可以了,经测试发现的确是主机中文名导致的

改完主机名之后代码运行如下:

问题,改成英文名即可顺利启动本地服务器。

猜你喜欢

转载自www.cnblogs.com/leesen934/p/9058075.html