Я обычно помещаю его в __init.py__
после main()
, и тогда я могу работать с или без Gunicorn (при условии, что ваш main()
поддерживает и другие функции).
# __init__.py
# Normal entry point
def main():
...
# Gunicorn entry point generator
def app(*args, **kwargs):
# Gunicorn CLI args are useless.
# /8202975/ispolzovanie-dopolnitelnyh-argumentov-komandnoi-stroki-s-gunicorn
#
# Start the application in modified environment.
# https://stackoverflow.com/questions/18668947/
#
import sys
sys.argv = ['--gunicorn']
for k in kwargs:
sys.argv.append("--" + k)
sys.argv.append(kwargs[k])
return main()
Таким образом, вы можете просто запустить, например,
gunicorn 'app(foo=bar)' ...
и ваш main()
может использовать стандартный код, который ожидает аргументы в sys.argv
.