У меня есть приложение django, в которое я добавил сельдерей. В приложении django у меня есть пакет под названием 'parser', 'api'. Я настроил сельдерей, следуя следующему руководству: Первые шаги с Django. В пакете парсера есть models.py. Вы 'task.py' упаковываете 'api'? Когда я пытаюсь сделать из моделей импорта парсера в пакете api. Я получаю следующую ошибку: Нет модуля с именем models
Я посмотрел и обнаружил, что следующий файл импорта: lib / python2.7 / lib-dynload / parser.x86_64-linux-gnu.so
webapp/
manage.py
api/
__init__.py
models.py
views.py
tasks.py
...
parser/
__init__.py
models.py
views.py
...
settings/
__init__.py
base.py
celery.py
dev.py
live.py
local.py
urls.py
wsgi.py
На случай, если мне понадобится «models.py» пакета парсера. Команда, которую вы используете для запуска сельдерея, следующая: celery -A settings worker --loglevel=info
. Когда я запускаю сельдерей в manage.py, беру нужный файл: python manage.py celery -A settings worker --loglevel=info
api / task.py
from __future__ import absolute_import, division, print_function, unicode_literals
import time
from celery import task
from parser.models import FileUploadProcess # Error import
@task()
def test_task(param1):
print("Test task called. Param: {}".format(param1))
return 42
@task()
def parse_file(file_candidate, candidate_id):
FileUploadProcess(candidate_id=candidate_id, is_process=True).save()
# parse file
time.sleep(15)
FileUploadProcess.objects.filter(candidate_id=candidate_id).update(is_process=False)
Может как-нибудь подсказать мне Импорт правильный пакет?