开开心心happyheart 2023-04-08 13:07 采纳率: 83.3%
浏览 28

关于#python#utf-8#gevent#的问题,如何解决?

最近在自学python后端(flask框架),用“gevent_pywsgi”运行时出现了一点问题:
报错内容说:

“utf-8”编解码器无法解码字节0xbf:无效的起始字节

原报错内容是这样的:

Traceback (most recent call last):
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\threadpool.py", line 175, in __run_task
    thread_result.set(func(*args, **kwargs))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
2023-04-08T04:49:57Z (<ThreadPoolWorker at 0x1f08db18888 thread_ident=0x242c threadpool-hub=<Hub at 0x1f08d7c0f48 thread_ident=0x1ac>>, <built-in function gethostbyaddr>) failed with UnicodeDecodeError

Traceback (most recent call last):
  File "C:/Users/段禹珩/Desktop/610网站/main.py", line 103, in <module>
    server.serve_forever()
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\baseserver.py", line 398, in serve_forever
    self.start()
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\baseserver.py", line 336, in start
    self.init_socket()
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\pywsgi.py", line 1546, in init_socket
    self.update_environ()
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\pywsgi.py", line 1558, in update_environ
    name = socket.getfqdn(address[0])
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\_socketcommon.py", line 304, in getfqdn
    hostname, aliases, _ = gethostbyaddr(name)
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\_socketcommon.py", line 276, in gethostbyaddr
    return get_hub().resolver.gethostbyaddr(ip_address)
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\resolver\thread.py", line 66, in gethostbyaddr
    return self.pool.apply(_socket.gethostbyaddr, args, kwargs)
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\pool.py", line 161, in apply
    return self.spawn(func, *args, **kwds).get()
  File "src\\gevent\\event.py", line 329, in gevent._gevent_cevent.AsyncResult.get
  File "src\\gevent\\event.py", line 359, in gevent._gevent_cevent.AsyncResult.get
  File "src\\gevent\\event.py", line 347, in gevent._gevent_cevent.AsyncResult.get
  File "src\\gevent\\event.py", line 327, in gevent._gevent_cevent.AsyncResult._raise_exception
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\_compat.py", line 66, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\段禹珩\AppData\Roaming\Python\Python37\site-packages\gevent\threadpool.py", line 175, in __run_task
    thread_result.set(func(*args, **kwargs))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte

项目原代码:

# -*- coding : utf-8 -*-
# coding: utf-8

from flask import *
from http.server import *
from gevent import pywsgi as internet

app = Flask(__name__)

'''测试'''
@app.route('/internet')
def cs ():
    return render_template('index.html')

'''运行程序'''
if __name__ == "__main__":
    # app.config["JSON_AS_ASCII"] = False
    # app.run(host="0.0.0.0", port=610, debug=True, threaded=True, processes=1)

    server = internet.WSGIServer(('0.0.0.0', 5000), app)
    server.serve_forever()

可是我乍一看,那根本不是项目文件夹中的文件啊!那是库文件夹中的文件!
我在网上找了很久,都说编码问题只用在另存为中更改编码格式就够了。我也把所有报错了的文件另存为了一遍,报错内容还是一样的。
这个问题怎么解决啊,是要用python更高版本还是重新安装“gevent”啊?

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-09 17:27
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 4月8日