有没有办法用gunicorn 18.0运行gevent-socketio 0.3.5-rc2而不降级

时间:2013-11-08 05:41:32

标签: gevent gunicorn gevent-socketio

我正在跑步:

gevent==0.13.8  
gevent-socketio==0.3.5-rc2  
gunicorn==18.0  

并遇到以下错误:

2013-11-05 06:40:00 [5671] [ERROR] Exception in worker process:
Traceback (most recent call last):
  File "/home/vagrant/server/lib/python2.7/site-packages/gunicorn/arbiter.py", line 495, in spawn_worker
    worker.init_process()
  File "/home/vagrant/server/lib/python2.7/site-packages/gunicorn/workers/ggevent.py", line 165, in init_process
    super(GeventWorker, self).init_process()
  File "/home/vagrant/server/lib/python2.7/site-packages/gunicorn/workers/base.py", line 112, in init_process
    self.run()
  File "/home/vagrant/server/lib/python2.7/site-packages/socketio/sgunicorn.py", line 14, in run
    self.socket.setblocking(1)
AttributeError: 'GeventSocketIOWorker' object has no attribute 'socket'

之前的堆栈溢出问题的解决方案是“降级到版本16.0”

GeventSocketIOWorker has no attribute 'socket'

但是我不愿意这样做,因为v18.0中的补充对我来说真的很有用。

我在这里问,因为我不确定是否有一个我错过的简单解决方案。如果不是,我想我需要为枪炮提高票价?

1 个答案:

答案 0 :(得分:0)

这是一个版本的东西。

gevent-socketio版本0.3.5-rc2于2012年7月上传至Pypi。此问题的解决方案于2013年1月发布。

我通过使用GitHub上gevent-socketio存储库的master分支解决了这个问题。为此,请将requirements.txt中gevent-socketio的行更改为

-e git+git@github.com:abourget/gevent-socketio.git#egg=gevent_socketio