title: How to not use __init__.py as Flask app name?
body: <p>I have a flask app structured like so:</p>
  
  <ul>
  <li>repo_root
  
  <ul>
  <li>config.py</li>
  <li>requirements.txt</li>
  <li>my_cool_app/</li>
  <li>my_cool_app/__init__.py</li>
  <li>my_cool_app/models.py</li>
  <li>my_cool_app/views.py</li>
  <li>my_cool_app/static/</li>
  <li>my_cool_app/templates/</li>
  </ul></li>
  </ul>
  
  <p>And the contents of <em>my_cool_app/__init__.py</em> looks like:</p>
  
  <pre><code>from flask import Flask
  from flask_sqlalchemy import SQLAlchemy
  from flask_migrate import Migrate
  from flask_oauth2_login import GoogleLogin
  from flask_login import LoginManager
  
  app = Flask(__name__)
  app.config.from_object('config')
  db = SQLAlchemy(app)
  migrate = Migrate(app, db)
  
  google_login = GoogleLogin(app)
  login_manager = LoginManager()
  login_manager.init_app(app)
  
  import my_cool_app.models
  import my_cool_app.views
  </code></pre>
  
  <p>To run it, I invoke:</p>
  
  <pre><code>FLASK_APP=my_cool_app/__init__.py flask run
  </code></pre>
  
  <p>Based on a variety of documentation online, I thought I should be able to just set <code>FLASK_APP</code> to the package name <code>my_cool_app</code>. When I do this, and invoke <code>flask run</code>, the application starts but in the browser I immediately see the error:</p>
  
  <pre><code>flask.cli.NoAppException
  flask.cli.NoAppException: The file/path provided (my_cool_app) does not appear to exist.  Please verify the path is correct.  If app is not on PYTHONPATH, ensure the extension is .py
  </code></pre>
  
  <p>What should I be doing to be able to set the <code>FLASK_APP</code> to just <code>my_cool_app</code>? Or is it more appropriate/typical for <code>FLASK_APP</code> to be set to something else, given the way this flask application is structured?</p>