La aplicación Flask Gunicorn no puede hacer que __name__ sea igual a ‘__main__’

Tengo esto 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 

Así que el __name__ de la aplicación es app . No __main__ como lo necesito para ejecutar la sentencia if.
Intenté poner un __init__.py vacío en el directorio. Aquí está 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 que __name__ igual a '__main__' . También quiero saber por qué no lo hace y cómo hacerlo igual __main__ .

Editar 2

… Acabo de tener la revelación de que no necesito ejecutar app.run() ya que para eso es Gunicorn. Duh Pero todavía me gustaría averiguar por qué __name__ no es '__main__'

Python establece __name__ a "__main__" cuando el script es el punto de entrada para el intérprete de Python. Como Gunicorn importa el script, se está ejecutando, ese script no será el punto de entrada y, por lo tanto, no tendrá __name__ establecido en "__main__" .