I got nginx + uWSGI running on localhost inside a virtualenv with a simple hello world program, but I get this error when I replace the hello world with a simple Flask app:

File "./wsgi_configuration_module.py", line 1, in <module>
    from flask import Flask
ImportError: No module named flask
unable to load app mountpoint

Here's the flask app (wsgi_configuration_module.py):

from flask import Flask
application = Flask(__name__)

def hello():
    return "hello world"

if __name__ == "__main__":

uWSGI config (app_conf.xml):


nginx config:

server {
    listen   80;
    server_name localhost;
    access_log /srv/www/labs/logs/access.log;
    error_log /srv/www/labs/logs/error.log;

    location / {
        include        uwsgi_params;

    location /static {
        root   /srv/www/labs/public_html/static/;
        index  index.html index.htm;

virtualenv stored in ~/virtual_env with Python 2.7 + nginx + uWSGI + Flask installed in a virtualenv called basic.

Things I've tried to solve this:

  1. set the --home (-H) option to my virtualenv folder ~/virtual_env while running uWSGI.

Other info:

  1. I have the same setup working outside of a virtualenv. Things go wrong only when I try to replicate the setup inside of a virtualenv.

Where have I gone wrong?

2 Answers 2


Just add path to your virtual env to <pythonpath> in uwsgi's app_conf.xml file. eg:


the -H/--home/--virtualenv option does not expand the ~ symbol. Specify it as an absolute path and it should work.

The same apply to configfiles, so you would add


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.