1

私はmanage.pyに以下を入れました(django-celery 3.0.21を使用):

import eventlet
pymysql = eventlet.import_patched('pymysql')
pymysql.install_as_MySQLdb()

そして、django または celery を起動しようとすると、次のエラーが発生します。

Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    pymysql.install_as_MySQLdb()
  File "/home/ubuntu/.virtualenvs/myenv/lib/python2.6/site-packages/pymysql/__init__.py", line 115, in install_as_MySQLdb
    sys.modules["MySQLdb"] = sys.modules["_mysql"] = sys.modules["pymysql"]
KeyError: 'pymysql'

基本的に、イベントレットでセロリを使用したいのですが、これには「環境に優しい」Python MySQL ライブラリが必要です。

4

1 に答える 1

1

ありがとうございます。これは のバグのようeventlet.import_patched()です。バグトラッカーで問題 [1] をオープンしました。

次のコードを使用できます。

import eventlet
eventlet.monkey_patch()
# everything below is patched to be green

import pymysql
pymysql.install_as_MySQLdb()

[1] 関連する Eventlet の問題https://github.com/eventlet/eventlet/issues/81

于 2014-03-29T05:54:53.530 に答える