J'ai suivi les premières étapes avec le céleri (Django) et j'ai essayé de lancer un processus lourd en arrière-plan. J'ai le serveur RabbitMQ installé. Cependant, lorsque j'essaie, celery -A my_app worker -l info
renvoie l'erreur suivante
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "c:\anaconda3\lib\site-packages\celery\concurrency\prefork.py", line
18, in <module>
from celery.concurrency.base import BasePool
File "c:\anaconda3\lib\site-packages\celery\concurrency\base.py", line 15,
in <module>
from celery.utils import timer2
File "c:\anaconda3\lib\site-packages\celery\utils\timer2.py", line 16, in
<module>
from kombu.asynchronous.timer import Entry
ModuleNotFoundError: No module named 'kombu.asynchronous.timer'
J'ai beaucoup cherché, mais je n'arrive pas à le faire fonctionner. Toute aide sera grandement appréciée. Je vous remercie!
J'ai le même problème, mais je l'ai résolu lors de la réinstallation du céleri avec la version 3.1.25
pip uninstall celery && pip install celery==3.1.25
Peut-être parce que windows n'est pas officiellement supporté par celery 4 https://github.com/celery/celery/issues/3551
TL; DR: supprime le répertoire kombu de la racine de virtualenv (s’il existe). Il ne peut échouer que sous Windows.
Cela semble être une bizarrerie. J'ai trouvé la même erreur et j'ai vérifié ce qui se passait.
Le paquet de roue que pip télécharge semble bon (kombu.asynchronous.timer existe dedans). La publication de la dernière version (actuellement la version 4.2.0) convient également. Ce qui était étrange, c’est ce que j’ai trouvé dans mon installation de virtualenv.
J'ai trouvé un répertoire kombu à la racine de virtualenv qui contient le contenu de la bibliothèque, mais également un répertoire "async", à côté du répertoire "asynchrone". Ces répertoires ne font pas partie de la version 4.2.0, car async a le fichier timer.py mais pas asynchrone.
D'où vient-il? Cela semble provenir du répertoire de données de la roue.
Donc, la solution: j'ai supprimé le répertoire kombu de la racine de mon virtualenv et le céleri a fonctionné.
J'ai testé le céleri sur la même version de python que vous avez et tout va bien. et aussi https://github.com/celery/kombu/blob/master/kombu/asynchronous/timer.py montre que le fait de renommer des choses de manière aléatoire ne vous aidera pas. Peut-être devriez-vous essayer pip uninstall kombu && pip --no-cache-dir install -U kombu
pour effectuer une nouvelle installation de kombu
. Je suppose qu'il doit y avoir quelque chose qui ne va pas avec votre installation. donc, si la chose à réinstaller kombu
ne fonctionne pas, essayez de la réinstaller.
Je viens juste de commencer avec Celery. J'ai suivi les instructions et installé Celery v 4.2.0.
quand j'essayais d'exécuter la commande: celery -A mysite worker -l info
J'ai eu l'erreur:
ModuleNotFoundError: No module named 'kombu.asynchronous.timer
J'ai supprimé l'installation de céleri: pip uninstall celery
Par la suite installé Celery 3.1.25 comme «chuhy» recommandé
mais..Il avait quelques autres problèmes, donc j'ai immédiatement désinstallé la 3.1.25 et réinstallé le céleri v4.2.0.
Après ce scénario, l'erreur ne s'est pas reproduite.