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?
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/
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
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.
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?
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/
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
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.