我已经安装了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二进制文件,这是一个开发环境。
答案 0 :(得分:2)
昨天修复了与patch_item
相关的猴子模块中的错误。建议使用固定版本进行任何进一步的测试。
如果它没有帮助,你可以通过调用patch_all
并将一些参数设置为False来解决问题,并找出哪个模块对你有用。
def patch_all(socket=True, dns=True, time=True, select=True, thread=True, os=True, ssl=True, httplib=False, aggressive=True)
我最终建议测试较窄的是monkey.patch_all(socket=False, select=False)
。这使得“dns”和“激进”也未被使用。你可以专注于套接字并单独选择,最后,如果其他一切都可以安全启用,那就玩“dns”和“激进”。