3

我已经安装了geventgreenlet库,并且在__init__.py我的 Djano 应用程序的文件中,我在这两行中转储了:

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 二进制文件,这是一个开发环境。

4

1 回答 1

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”和“aggressive”也未被使用。您可以专注于套接字并单独选择,最后,如果可以安全地启用其他所有内容,则可以使用“dns”和“aggressive”。

于 2012-04-13T07:35:50.830 回答