1

我正在尝试运行这个 gevent 服务器

   from gevent import pywsgi
from Index import application
import paste.urlparser 
import os
# http server: serves up static files
print "static files",os.path.dirname(__file__)
print "serving on localhost:8000"
http_server = pywsgi.WSGIServer(
    ('', 8000),
    paste.urlparser.StaticURLParser(os.path.dirname(__file__)))
print 'Serving on https://127.0.0.1:4000'
server = pywsgi.WSGIServer(('0.0.0.0', 4000), application,spawn=None)

# Start the server greenlets
http_server.start()

# to start the server asynchronously, call server.start()
# we use blocking serve_forever() here because we have no other jobs
server.serve_forever()

我收到了这个异常,它让我无法处理来自 werkzeug 服务器的请求。我只使用了 werkzeug 实用程序,从未使用过 werkzeug 服务器。

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gevent/server.py", line 131, in _do_accept
    self._handle(client_socket, address)
  File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line 571, in handle
    handler.handle()
  File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line 180, in handle
    result = self.handle_one_request()
  File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line 287, in handle_one_request
    raw_requestline = self.read_requestline()
  File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line 280, in read_requestline
    return self.rfile.readline(MAX_REQUEST_LINE)
  File "/usr/lib/python2.7/socket.py", line 476, in readline
    data = self._sock.recv(self._rbufsize)
  File "/usr/local/lib/python2.7/dist-packages/gevent/socket.py", line 432, in recv
    wait_read(sock.fileno(), timeout=self.timeout, event=self._read_event)
  File "/usr/local/lib/python2.7/dist-packages/gevent/socket.py", line 169, in wait_read
    switch_result = get_hub().switch()
  File "/usr/local/lib/python2.7/dist-packages/gevent/hub.py", line 154, in switch
    assert cur is not self, 'Cannot switch to MAINLOOP from MAINLOOP'
AssertionError: Cannot switch to MAINLOOP from MAINLOOP
<WSGIServer fileno=4 address=0.0.0.0:4000>: Failed to handle request from ('127.0.0.1', 36088)
4

0 回答 0