2017-08-13 3 views
1

J'ai cherché partout une réponse à cela. Je mets en place un serveur pour mon site Django sur Ubuntu 16.04 (océan numérique) et mon site Django nécessite l'utilisation de céleri pour certaines tâches périodiques.Django céleri ImportError: aucun module nommé céleri lors de l'utilisation de gunicorn bind?

Cela fonctionne dans mon environnement de développement. Et en cours d'exécution python manage.py celery beat et python manage.py celery worker fonctionnent très bien. Tout était également installé dans un virtualenv.

Voici mes fichiers:

# __init__.py

from __future__ import absolute_import 
from .celery_tasks import app as celery_app # noqa 

# celery_tasks.py

from __future__ import absolute_import 

import os 
from celery import Celery 

# set the default Django settings module for the 'celery' program. 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') 

from django.conf import settings # noqa 

app = Celery('myproject') 

app.config_from_object('django.conf:settings') 
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) 


@app.task(bind=True) 
def debug_task(self): 
    print('Request: {0!r}'.format(self.request)) 

Et ceci est l'erreur qui a été passe:

# gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application

File "/root/myproject/myproject/__init__.py", line 2, in <module> 
from .celery_tasks import app as celery_app # noqa 
File "/root/myproject/myproject/celery_tasks.py", line 4, in <module> 
from celery import Celery 
ImportError: No module named celery 
[2017-08-13 07:29:36 +0000] [5463] [INFO] Worker exiting (pid: 5463) 
[2017-08-13 07:29:36 +0000] [5458] [INFO] Shutting down: Master 
[2017-08-13 07:29:36 +0000] [5458] [INFO] Reason: Worker failed to boot. 

Il y a aussi un peu plus de retraçage qui ne semblait pas pertinent.

S'il vous plaît, toute aide est très appréciée. Je pense qu'il me manque quelque chose de simple mais j'ai lutté avec ça pendant des heures.

Répondre

2

Erreur indique ne pas fonder le céleri. Alors mettez celery dans votre fichier requirements.txt, et quand vous le déployez, installe Celery. Ou dans votre serveur ne:

pip install celery 

ou

pip install -r requirements.txt