我在Webfaction这个共享服务器上使用Apache(mod_wsgi)和gevent部署我的Flask应用程序时出现了问题。
在Flask提供的开发服务器中,应用程序可以正常工作。但是当我尝试进行部署时,日志文件中出现了以下错误:
[Tue Mar 13 15:48:24 2012] [error] Traceback (most recent call last):
[Tue Mar 13 15:48:24 2012] [error] File "evdns.pxi", line 78, in gevent.core.__evdns_callback (gevent/core.c:6300)
[Tue Mar 13 15:48:24 2012] [error] File "/home/username/.virtualenvs/staging/lib/python2.7/site-packages/gevent/hub.py", line 297, in switch_args
[Tue Mar 13 15:48:24 2012] [error] File "/home/username/.virtualenvs/staging/lib/python2.7/site-packages/gevent/hub.py", line 290, in switch
[Tue Mar 13 15:48:24 2012] [error] File "/home/username/.virtualenvs/staging/lib/python2.7/site-packages/gevent/hub.py", line 135, in get_hub
[Tue Mar 13 15:48:24 2012] [error] NotImplementedError: gevent is only usable from a single thread
我需要使用gevent,因为我正在使用python-requests的异步模块进行并发HTTP请求。我尝试过在谷歌上搜索,但唯一的建议是调用
from gevent import monkey
monkey.patch_all()
我已经在我的代码中做了一些事情。
WSGIDaemonProcess
的值为:
WSGIDaemonProcess myapp processes=5 python-path=/home/myusername/webapps/myapp/lib/python2.7 threads=1
这是我的httpd.conf文件:http://pastebin.com/eWygicJH。有没有人能提出解决此问题的建议?请注意,不要删除任何HTML标签。