Vous n'êtes pas identifié(e).
Bonjour,
Je ne sais pas si ce message a bien sa place dans ce forum, mais je suis à peu près sûr que pas mal de gens de ce forum auront un jour avoir quelque chose à faire avec Celery.
J'ai donc installé Celery avec Redis, le serveur redis fonctionne bien, je l'ai testé etc...
Mon arborescence de répertoires est la suivante :
/modules
/tasks --> module de test Celery
/celery --> module Celery
/mmb --> projet django
/redis-stable --> emplacement du serveur qui écoute sur le port 13950
Le fichier tasks.py
from __future__ import absolute_import
from celery import Celery
app = Celery('tasks', broker='redis://localhost:13790/0', backend='redis://localhost:13790/0')
#commande : ./modules/celery -A /home/geomusic/mmb/geomusic/tasks worker --loglevel=info
@app.task
def add(x, y):
return x + y
commande
/modules$ ./celery -A tasks worker -B
L'erreur retournée
ImportError: No module named celery
Pourtant lorsque je lance un shell python, import celery ce passe bien
voilà, si quelqu'un a déjà rencontré ce problème, merci
Hors ligne
Tu as manifestement un problème avec tes chemins Python.
Il faut savoir que l'interpréteur Python met systématiquement le répertoire courant dans son path, ce qui n'est pas le cas quand tu lances celery. Regarde du coté du PYTHONPATH.
Hors ligne
Il me semble que j'ai pourtant tout dans mon PYTHONPATH, là j'avoue ne pas comprendre.
Je ne sais pas trop comment fonctionne celery, mais dans mon cas, j'ai tout mis dans le répertoire "modules". Lorsque j'exécute le shell python, tout semble s'importer correctement.
Dans mon pythonpath, j'ai bien le chemin vers "modules", comment tester ce problème d'import ?
Merci pour la réponse
Hors ligne
fais-toi un fichier qui import celery et lance-le pour voir si déjà celery peut être importé.
Tu pourras voir le path d'import via:
import sys; print(sys.path)
Hors ligne
donc, Je me suis bien fait un import de celery via un fichier en .py et rien n'y fait.
Je cherche toujours mais cela me bloque bien dans mes développements...
Je pense que le problème viens de ma commande, qu'en pensez-vous ?
Si vous avez d'autres idées..
Hors ligne
Salut,
Je n'ai pas de solution à ton problème en particulier. Cependant j'ai suivi avec succès le tutorial First steps with Django.
Au cas où tu serais passé à côté...
++
Hors ligne
@Jaals : Merci pour le lien, mais je souhaite faire fonctionner celery avec redis de manière extérieure à django car cela offre plus de possibilités.
Je vais continuer mes investigations, je vous tiens au courant.
Merci
Hors ligne
Des news Torrak?
Je suis intéressé par cette manière de faire car pour le moment je gère Celery avec Django puisque ça se combine avec une application.
Question conne mais as-tu bien installé Celery?
pip install Celery
Moi j'ai transport: redis://localhost:6379// dans Django
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379//')
@app.task
def add(x, y):
return x + y
Sinon peut être que cette réponse t'aidera http://stackoverflow.com/a/21066694/3847751
Hors ligne
Re bonjour à tous,
Je reviens encore avec mon problème de configuration celery
J'ai trouvé un tutoriel très clair sur le manière d'installer celery avec redis :
http://michal.karzynski.pl/blog/2014/05 … ery-redis/
J'ai bien suivi toutes les étapes et adapté mon code en fonction de ma configuration. Mais lorsque je lance la commande :
/modules/celery --app=celery_v1:app worker --loglevel=INFO
J'ai l'erreur suivante :
from django.conf import settings
ImportError: No module named django.conf
qui est situé dans le fichier celery_v1.py
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mmb.settings')
app = Celery('mmb')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
Pourtant lorsque j'importe django.conf dans le shell tout s'importe correctement...
Serais-je allergique au Celery ?
Hors ligne
Re bonjour,
j'ai oublié de vous dire, quelque chose d'encore plus étrange...
Lorsque j'exécute mon fichier celery_v1.py tout se passe normalement, aucun problème.
Du coup si l'on essaye de comprendre ce problème, j'en suis a pensé que cela viens de la commande "celery" qui doit s'exécuter sur une mauvaise version de python.
bref j'y comprend rien
existe t'il une commande de test pour la ligne de commande celery ?
Merci
Hors ligne