WSGIServer出现“ 0.0.0.0”错误-需要一个整数(got类型字节)

时间:2019-12-19 23:08:43

标签: python python-3.x wsgiserver

我正在使用地址WSGIServer运行'0.0.0.0'

    from gevent import pywsgi
    from geventwebsocket.handler import WebSocketHandler

    server = pywsgi.WSGIServer(('0.0.0.0', 5002), app, handler_class=WebSocketHandler)

    server.serve_forever()

哪个会生成错误TypeError: an integer is required (got type bytes)

如果我将'0.0.0.0'更改为'127.0.0.1',一切正常。

我在MacOS 10.14.6上使用Python 3.8

这是完整的错误

Traceback (most recent call last):   
File "/Users/ronharlev/Documents/MyProject/streaming_server.py", line 174, in run_process
        server.serve_forever()   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/baseserver.py", line 367, in serve_forever
        self.start()   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/baseserver.py", line 305, in start
        self.init_socket()   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/pywsgi.py", line 1491, in init_socket
        self.update_environ()   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/pywsgi.py", line 1503, in update_environ
        name = socket.getfqdn(address[0])   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/_socketcommon.py", line 269, in getfqdn
        hostname, aliases, _ = gethostbyaddr(name)   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/_socketcommon.py", line 241, in gethostbyaddr
        return get_hub().resolver.gethostbyaddr(ip_address)   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/resolver/thread.py", line 68, in gethostbyaddr
        return self.pool.apply(_socket.gethostbyaddr, args, kwargs)   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/pool.py", line 159, in apply
        return self.spawn(func, *args, **kwds).get()   
File "src/gevent/event.py", line 268, in gevent._event.AsyncResult.get   
File "src/gevent/event.py", line 296, in gevent._event.AsyncResult.get 
File "src/gevent/event.py", line 286, in gevent._event.AsyncResult.get 
File "src/gevent/event.py", line 266, in gevent._event.AsyncResult._raise_exception   
File "src/gevent/event.py", line 211, in gevent._event.AsyncResult.exc_info.__get__   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/_tblib.py", line 371, in g
        return f(a)   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/_tblib.py", line 432, in load_traceback
        return loads(s)   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/_tblib.py", line 337, in unpickle_traceback
        return ret.as_traceback()   
File "/Users/ronharlev/Documents/MyProject/venv/lib/python3.8/site-packages/gevent/_tblib.py", line 202, in as_traceback
        code = CodeType( TypeError: an integer is required (got type bytes)

1 个答案:

答案 0 :(得分:2)

https://github.com/gevent/gevent/issues/1491

gevent 1.4与Python 3.8不兼容。请使用gevent> = 在Python 3.8上为1.5a2。这是在Python 3.8上运行gevent 1.4的(几个)已知问题之一。