Почему у сельдерея другое приложение Python Path in Flask - PullRequest
0 голосов
/ 10 мая 2018

Я настраиваю сельдерей с приложением Flask. Структура папок моего приложения выглядит следующим образом:

enter image description here

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 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...