41
votes

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?

3
Heap installed like that , it's a package instalation with apache2 , you don't have to configured it again.drabo2005
You can't have both libapache2-modwsgi and libapache2-modwsgi-py3 installed, at least in Debian. I assume it's the same case in Ubuntu.Sventimir
Yes, you are right, it is one or the other.Lazik
I think your mistake it was to omit the mod_wsgi tag -- the developer appears to be monitoring that tag. I've just asked a similar question here: stackoverflow.com/questions/30674644/…P i
drabo2005 actually answered me. You just have to do apt-get install libapache2-mod-wsgi-py3 and it will overwrite the mod-wsgi for py2.7. That configure file worked fine.Lazik

3 Answers

88
votes

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/

6
votes

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
5
votes

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.