2014-11-13 2 views
1

У меня есть приложение django, подключенное к базе данных MySQL, которое использует PyMySQL, а не MySQLdb. Дополнительную информацию об этом см. В популярном ответе на номер this question.Celery, Django и PyMySQL

Теперь мне необходимо создать периодическую задачу с использованием Celery. Я следил за документацией для периодических задач here.

Когда я запускаю команду celery -A proj beat я получаю следующее сообщение об ошибке:

File "/usr/local/lib/python3.4/dist-packages/django/contrib/auth/forms.py", line 17, in <module> 
    from django.contrib.auth.models import User 
    File "/usr/local/lib/python3.4/dist-packages/django/contrib/auth/models.py", line 48, in <module> 
    class Permission(models.Model): 
    File "/usr/local/lib/python3.4/dist-packages/django/db/models/base.py", line 96, in __new__ 
    new_class.add_to_class('_meta', Options(meta, **kwargs)) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/models/base.py", line 264, in add_to_class 
    value.contribute_to_class(cls, name) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/models/options.py", line 124, in contribute_to_class 
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/__init__.py", line 34, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/utils.py", line 198, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/utils.py", line 113, in load_backend 
    return import_module('%s.base' % backend_name) 
    File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/backends/mysql/base.py", line 17, in <module> 
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) 
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb' 

Это compains о модуле MySQLDb, но я не думаю, что я использую MySQLDb. Может ли кто-нибудь предложить какие-либо рекомендации по решению этой проблемы?

ответ

0

Я столкнулся с этим же вопросом и был в состоянии это исправить, добавив следующие приложения сельдерея:

import pymysql 
pymysql.install_as_MySQLdb() 
Смежные вопросы