uwsgi + Flask + virtualenv ImportError: no module named site

I had the similar issue before. My problem is that I have both python2.x and python3.x on my ubuntu system, and I want my project to run in a virtual env in which python3 environment is installed. How I resolved this issue:

apt-get install python3-pip

pip3 install uWSGI

That's all.


See the answer from @JRajan first.

If you're sure you just want to suppress the error and not actually solve the underlying issue, you should add --no-site to your command or no-site=true to your uwsgi.ini file.


The path to your virtual environment is wrong. That's the reason for this error.

I'm using virtualenvwrapper and my virtual environments are set at ~/.virtualenvs. So in my case, the uwsgi call would look something like

sudo uwsgi -s /tmp/uwsgi.sock -w myapp:app -H ~/.virtualenvs/myapp

Hope this helps next time someone comes looking for this one.

Thanks to Cody for pointing it out in the comments.


In my case the problem was the python version uWSGI tried to use.

My project was written in python 3.4, but I was not specifying this in uWSGI config. So uWSGI tried to use python 2 and tried to import modules from the folder lib/python2.7 inside the virtualenv.

So I received the 'No module named site' error, because all the modules, including the site module, where inside lib/python3.4, not lib/python2.7.

To solve it, i had to do two things:

  • Install the python3 plugin for uWSGI, with:
    apt-get install uwsgi-plugin-python3

  • Use it in the .ini config file, with:
    plugins = python34

Hope this helps someone with the same problem in the future.

As requested, here follows my .ini file:

[uwsgi]
base = /your/app/path

pythonpath = %(base)
module = your_module_name

callable = app #Here you put the name of the variable which holds your app inside your module

home = /your/virtualenv/path
plugins = python34

master = true
processes = 2

uid = www-data
gid = www-data

socket = /path/to/socket
chmod-socket = 660

die-on-term = true

logto = /var/log/uwsgi/%n.log