My journey to install Gunicorn to server Python project is not pleasant because of old Ubuntu system where Python version 3.5 installed but default Gunicorn not compatible with this version.
So, as suggested from gunicorn.org I need to install Gunicorn version 3 for Python 3 … The point is, I need to install this Gunicorn 3 at outside of my virtual environment.
First of all we need to change wsgi.py file in Python project in my case – “<project root>/helloworld/wsgi.py”
import os, sys # add the hellodjango project path into the sys.path sys.path.append('/home/django-helloworld/helloworld') # add the virtualenv site-packages path to the sys.path sys.path.append('/home/django-helloworld/myvenv/lib/python3.5/site-packages') from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'helloworld.settings') application = get_wsgi_application()
Above file I added two lines because while executing from gunicorn 3 (which installed outside of virtual environment i.e. into OS) Python can’t find Django or other project related package.