How to install & configure mod_wsgi for py3

Question:

I installed & configured mod_wsgi for python2.7 but now I would also like to have mod_wsgi for py3

I’m in ubuntu 12.04
My apache conf file looks like this for py2.7 :

<Directory /var/www/vhosts/my_web>
    WSGIProcessGroup my_web
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

Now I would like to install mod_wsgi for python3.

I think I have to do apt-get install libapache2-mod-wsgi-py3

But I can’t find any instruction on how to configure mod_wsgi for py3.
a) Can I keep mod_wsgi for py2.7 or do I need to remove it for apache to work with mod_wsgi_py3?
b) What do I need to include in my apache conf?

Asked By: Lazik

||

Answers:

sudo apt-get install libapache2-mod-wsgi-py3

This will replace libapache2-mod-wsgi and will restart the apache service.

More specific instructions (Django) are available for here: https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/

Answered By: davesave

It is incorrect to say you do not need to install it again. Graham Dumpleton (the author of the mod_wsgi module) addressed the issue here.

Short answer – you will need to install the mod_wsgi compiled for your updated Python. I had the very same issue – as far as I can remember you need to get the correct pip for your Python version and run something along the lines of this:

sudo pip3.x install --target=/path/to/python3.x/site-packages mod_wsgi
Answered By: Arthur M

If you are using virtualenvs (which you should) you would simply build one out for the version of python you want to build mod_wsgi for.

$ mkvirtualenv --python=/usr/bin/python3 myvenv

Then

(myvenv) $ pip install mod_wsgi 

will build a Python3 version for you.

Answered By: boatcoder