Python 示例上的gevent.hub.LoopExit异常

Python 示例上的gevent.hub.LoopExit异常,python,flask,wsgi,gevent,Python,Flask,Wsgi,Gevent,我正在尝试运行我从中复制的以下示例: 出了什么问题?publish例程是否需要提前声明为greenlet?我(和pocoo代码段)缺少什么?我找到了一个解决方案,它与用于服务上述代码段的web服务器有关。flask run提供的服务器不工作。到目前为止,我发现唯一可以为上述应用程序服务的服务器是gunicorn,如下所示: gunicorn sse:app --worker-class gevent --bind 127.0.0.1:5000 这太棒了!(不幸的是,它只解决了我一半的问题,因为

我正在尝试运行我从中复制的以下示例:


出了什么问题?
publish
例程是否需要提前声明为greenlet?我(和pocoo代码段)缺少什么?

我找到了一个解决方案,它与用于服务上述代码段的web服务器有关。
flask run
提供的服务器不工作。到目前为止,我发现唯一可以为上述应用程序服务的服务器是gunicorn,如下所示:

gunicorn sse:app --worker-class gevent --bind 127.0.0.1:5000
这太棒了!(不幸的是,它只解决了我一半的问题,因为我想在Windows上运行我的服务器,而在Windows上不支持gunicorn。)

127.0.0.1 - - [27/May/2018 21:37:49] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [27/May/2018 21:37:49] "GET /subscribe HTTP/1.1" 500 -
Error on request:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/werkzeug/serving.py", line 209, in run_wsgi
    execute(self.server.app)
  File "/usr/lib/python2.7/site-packages/werkzeug/serving.py", line 199, in execute
    for data in application_iter:
  File "/usr/lib/python2.7/site-packages/werkzeug/wsgi.py", line 704, in __next__
    return self._next()
  File "/usr/lib/python2.7/site-packages/werkzeug/wrappers.py", line 81, in _iter_encoded
    for item in iterable:
  File "/home/dov/git/learning/flask/stream/stream.py", line 88, in gen
    result = q.get()
  File "/usr/lib64/python2.7/site-packages/gevent/queue.py", line 283, in get
    return self.__get_or_peek(self._get, block, timeout)
  File "/usr/lib64/python2.7/site-packages/gevent/queue.py", line 260, in __get_or_peek
    result = waiter.get()
  File "/usr/lib64/python2.7/site-packages/gevent/hub.py", line 898, in get
    return self.hub.switch()
  File "/usr/lib64/python2.7/site-packages/gevent/hub.py", line 630, in switch
    return RawGreenlet.switch(self)
LoopExit: ('This operation would block forever', <Hub at 0x7f434fb2daf0 epoll default pending=0>)
gunicorn sse:app --worker-class gevent --bind 127.0.0.1:5000