我在使用Apache(mod_wsgi) 和gevent共享主機(Webfaction)部署我的Flask應用程序時遇到問題。爲什麼gevent在Apache + mod_wsgi的Flask應用程序中引發NotImplementedError?
應用程序工作在由瓶提供的開發服務器,但是當我 嘗試部署它,我得到的日誌文件中出現以下錯誤:因爲我使用了python-requests' async module
[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到 發出併發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
任何人有任何建議來解決這個問題?
這是你的httpd.conf中WSGIDaemonProcess的值嗎? – Masci 2012-03-13 21:50:07
可能是因爲根據我的經驗gevent有點不高興,如果只有在其他人已經導入並以某種方式使用它時猴子纔會修補Python線程模塊。正在導致我無法解決某些問題。儘管如此,還沒有機會深入研究問題。 – 2012-03-13 23:47:17
@Masci我更新了一個鏈接到我的httpd.conf和WSGIDaemonProcess的值 – raben 2012-03-14 14:08:40