【发布时间】:2012-02-21 10:51:17
【问题描述】:
我已经安装了 gevent 和 greenlet 库,并在我的 Djano 应用程序的 __init__.py 文件中转储了这两行:
from gevent import monkey
monkey.patch_all()
现在我经常在我的 Django 控制台中看到如下错误:
Exception KeyError: KeyError(27066240,) in <module 'threading' from 'C:\Program_Files\Python27\Lib\threading.pyc'> ignored
当我删除这两行时,我的应用程序就可以正常工作了。这是我在 Windows 机器上使用的软件包的列表。
django-erroneous - 0.1.0 - active
Django - 1.3.1 - active
gevent - 0.13.6 - active
greenlet - 0.3.3 - active
lxml - 2.3.3 - active
PIL - 1.1.7 - active
pip - 1.0.2 - active
setuptools - 0.6c11 - active
South - 0.7.3 - active
virtualenv - 1.6.1 - active
yolk - 0.4.1 - active
Django 和 Gevent 是否存在兼容性问题?我是不是在这里做错了什么。
仅供参考,我使用的是来自非官方 Python 存储库的预构建 Windows 二进制文件,这是一个开发环境。
【问题讨论】:
-
你确定你没有使用 mod_wsgi?
-
不,我正在使用默认的 Django 开发服务器和
runserver命令。 -
错误消息中提到的路径表明 Python 正在 Mac OS X 上运行?另外,如果您不修补线程(即
monkey.patch_all(thread=False)),错误会消失吗? -
嗨,西蒙,我的错。该错误消息来自我复制并在剪贴板上的另一篇 SO 帖子。它看起来相同,但路径来自不同的平台。我已经放置了正确的异常消息。对此感到抱歉。
-
如果我添加
thread=False参数,我会收到以下错误 -NotImplementedError: gevent is only usable from a single thread。
标签: python django gevent greenlets