Я настраиваю сельдерей с приложением Flask. Структура папок моего приложения выглядит следующим образом:
app.py
в sonip_api/sonip
является точкой входа:
app = factory.flask
def main():
app.run(debug=settings.FLASK_DEBUG)
if __name__ == "__main__":
main()
Я следую этому примеру , чтобы приложение flask
и celery
было объявлено в factory.py
в sonip_api/sonip/api
.
Фактическая функция задачи сельдерея определена в sonip_api/sonip/api/resources/main.py
вместе с этими конечными точками.
Мне удалось запустить python sonip/app.py
в каталоге sonip_api
. Однако я получил ошибку при запуске celery -A sonip.api.celery worker
в том же каталоге:
File "C:\Users\dxx\WorkSpace\sonip_api\sonip\api\factory.py", line 4, in <module>
import settings
ModuleNotFoundError: No module named 'settings'
Это можно исправить, добавив sonip
перед settings
для импорта. Но тогда приложение Flask не запустится. Это похоже на проблему пути, я не понимаю, почему питон-путь сельдерея отличается от колбы. Я уверен, что если я перенесу все из sonip
в корневую директорию, команды Flask и celery будут работать. Но я не хочу, чтобы мое приложение находилось на том же уровне, что и env
и т. Д.