Pav Sidhu
Pav Sidhu

Reputation: 6944

Gunicorn Internal Server Error

I'm setting up Gunicorn with my Flask application. I have the following file structure:

Flask/
  run.py
  myapp/
    __init__.py
    views/
      homepage/
        __init__.py
        homepage.py
      login/
        __init__.py
        login.py
      blog/
        __init__.py
        blog.py

The run.py file imports the app instance in Flask/myapp/__init__.py and runs it like so:

from myapp import app
def run():
  app.run()

Using the command line, I run gunicorn run:run and the website starts up. I go to the website and I get an internal server error stating this:

[2015-09-14 19:00:41 +0100] [35529] [ERROR] Error handling request
Traceback (most recent call last):
  File "/Users/pavsidhu/.virtualenvs/environment/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 130, in handle
    self.handle_request(listener, req, client, addr)
  File "/Users/pavsidhu/.virtualenvs/environment/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 171, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
TypeError: run() takes no arguments (2 given)

What is the issue? Thanks.

Upvotes: 1

Views: 5745

Answers (1)

Thomas Orozco
Thomas Orozco

Reputation: 55199

You're supposed to pass a WSGI callable to gunicorn. As it turns out app is one, but your run function isn't.

So, instead of running gunicorn run:run, run: gunicorn run:app.

Upvotes: 5

Related Questions