Cuando ejecuto el comando
flower -A main --port=5555Flower no funciona, el error es:
> ImportError: cannot import name 'Command' from 'celery.bin.base'¿Algunas ideas? Main es un proyecto de Django
Flower siempre va a la zaga de Celery, por lo que si usa el último Celery (refactorizaron la CLI), probablemente fallará. Apégate a 4.4.x hasta que Flower te alcance.
Una solución alternativa, si prefiere evitar degradar su trabajador de Celery, es ejecutar una versión anterior de Flower separada de su instalación principal de Celery. Por ejemplo, en un contenedor o venv separado. Flower solo monitorea a su corredor y puede ejecutarse completamente separado de su trabajador Celery.
Para su instalación de Django/Celery, ejecute Celery normalmente (sin Flower):
celery -A main worker Para Flower, use la imagen acoplable mher/flower:0.9.5 , que internamente usa Celery 4.4.6 y se informa que funciona .
Aquí hay un comando docker run de muestra:
docker run --name flower -p 5555:5555 mher/flower:0.9.5 flower --broker=redis://redis-address Nota: debe cambiar la dirección del agente para que sea el nombre o la IP que se puede resolver con dns de su agente. Para rabbitmq, use --broker=amqp://guest@rabbitmq-address:5672// . Consulte la documentación de URL para conocer las opciones avanzadas.
Una vez que se ejecuta, Flower debería estar disponible en la IP del host Docker: 5555
Alternativamente, puede crear un archivo docker-compose que encapsule todos los argumentos en el comando de ejecución y use docker-compose up -d .
Si lo prefiere, también puede hacer todo esto sin Docker , usando pip install flower redis celery==4.4.7 , siempre que sea independiente de su instalación principal de Celery, y luego ejecute flower con flower --broker=redis://redis-address . Un venv separado puede funcionar para esto.
Consulte el problema de github para futuras actualizaciones sobre el error original.
Tuve el mismo problema mientras trabajaba en apio 5.0.5, así que cambié a la versión de apio 4.4.7 con flor 0.9.7 y funcionó.
Puede degradar Celery como muchas personas ya han sugerido o, como en mi caso, actualizar flower a la última versión, que ahora es 1.0.0 desde julio de 2021 -> https://pypi.org/project/flower/ .
Puedo confirmar que esta última versión es compatible con celery[auth,redis,tblib]==5.1.2 .
Personalmente, sugeriría que intentara actualizar los paquetes en lugar de degradarlos, y que actualizar la flor tiene menos posibilidades de romper su proyecto que degradar el apio.
Tal vez puedas probar pip install https://github.com/mher/flower/zipball/master#egg=flower