If all other deployment methods do not work, CGI will work for sure. CGI is supported by all major servers but usually has a less-than-optimal performance.
This is also the way you can use a Flask application on Google's App Engine, there however the execution does happen in a CGI-like environment. The application's performance is unaffected because of that.
Please make sure in advance that your app.run() call you might have in your application file, is inside an if __name__ == '__main__': or moved to a separate file. Just make sure it's not called because this will always start a local WSGI server which we do not want if we deploy that application to CGI / app engine.
Creating a .cgi file
First you need to create the CGI application file. Let's call it yourapplication.cgi:
#!/usr/bin/python from wsgiref.handlers import CGIHandler from yourapplication import app CGIHandler().run(app)
Usually there are two ways to configure the server. Either just copy the .cgi into a cgi-bin (and use mod_rewrite or something similar to rewrite the URL) or let the server point to the file directly.
In Apache for example you can put a like like this into the config:
ScriptAlias /app /path/to/the/application.cgi
For more information consult the documentation of your webserver.