title: uwsgi: no app loaded. going in full dynamic mode
body: <p>In my uwsgi config, I have these options:</p>
  
  <pre><code>[uwsgi]
  chmod-socket = 777
  socket = 127.0.0.1:9031
  plugins = python
  pythonpath = /adminserver/
  callable = app
  master = True
  processes = 4
  reload-mercy = 8
  cpu-affinity = 1
  max-requests = 2000
  limit-as = 512
  reload-on-as = 256
  reload-on-rss = 192
  no-orphans
  vacuum
  </code></pre>
  
  <p>My app structure looks like this:</p>
  
  <pre><code>/adminserver
     app.py
     ...
  </code></pre>
  
  <p>My <code>app.py</code> has these bits of code:</p>
  
  <pre><code>app = Flask(__name__)
  ...
  
  if __name__ == '__main__':
      app.run(host='0.0.0.0', port=5003, debug=True)
  </code></pre>
  
  <p>The result is that when I try to curl my server, I get this error:</p>
  
  <pre><code>Wed Sep 11 23:28:56 2013 - added /adminserver/ to pythonpath.
  Wed Sep 11 23:28:56 2013 - *** no app loaded. going in full dynamic mode ***
  Wed Sep 11 23:28:56 2013 - *** uWSGI is running in multiple interpreter mode ***
  </code></pre>
  
  <p>What do the <code>module</code> and <code>callable</code> options do? The docs say: </p>
  
  <blockquote>
    <p><strong>module, wsgi</strong> Argument: string</p>
    
    <p>Load a WSGI module as the application. The module (sans .py) must be
    importable, ie. be in PYTHONPATH.</p>
    
    <p>This option may be set with -w from the command line.</p>
    
    <p><strong>callable</strong> Argument: string Default: application</p>
    
    <p>Set default WSGI callable name.</p>
  </blockquote>