workers loglevel log error debug python nginx flask gunicorn

python - loglevel - set timeout in gunicorn



La aplicaciĆ³n Flask Gunicorn no puede hacer que__name__ sea igual a ''__main__'' (1)

Python establece __name__ en "__main__" cuando el script es el punto de entrada para el intérprete de Python. Dado que Gunicorn importa la secuencia de comandos que está ejecutando, esa secuencia de comandos no será el punto de entrada y, por lo tanto, no tendrá __name__ establecido en "__main__" .

Lo tengo de /home/myname/myapp/app.py :

from flask import Flask app = Flask(__name__) print __name__ @app.route(''/'') def index(): return "Hello world!" if __name__ == ''__main__'': print ''in if'' app.run()

Cuando corro:

$ gunicorn app:app -b 127.0.0.2:8000

Dice:

2013-03-01 11:26:56 [21907] [INFO] Starting gunicorn 0.17.2 2013-03-01 11:26:56 [21907] [INFO] Listening at: http://127.0.0.2:8000 (21907) 2013-03-01 11:26:56 [21907] [INFO] Using worker: sync 2013-03-01 11:26:56 [21912] [INFO] Booting worker with pid: 21912 app

Entonces el __name__ de la aplicación es la app . No __main__ como si fuera para ejecutar la declaración if.
Intenté poner un __init__.py vacío en el directorio. Aquí está el nginx sites-enabled default mi nginx sites-enabled default :

server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /home/myname/myapp; # Make site accessible from http://localhost/ server_name localhost; location / { proxy_pass http://127.0.0.2:8000; } }

Editar

... Mientras que esta aplicación imprime ''Hello world'' cuando visito el sitio. El punto es que necesito __name__ para igualar ''__main__'' . También quiero saber por qué no y cómo hacer que sea igual __main__ .

Editar 2

... Acabo de tener la epifanía de que no necesito ejecutar app.run() ya que para eso está Gunicorn. Duh. Pero aún me gustaría descubrir por qué __name__ no es ''__main__''