I am setting up an Apache server for an older Django app. I want to use my virtualenv configured for Python 2.7.
I set my httpd.conf WSGIDaemonProcess to use the venv via python-home and I try including the venv packages via python-path,
WSGIPythonHome /Users/cakey/Development/releasejango_project/2.7venv
WSGIDaemonProcess releasejango python-home=/Users/cakey/Development/releasejango_project/2.7venv python-path:/Users/cakey/Development/releasejango_project:/Users/cakey/Development/releasejango_project/2.7venv/lib/python2.7/site-packagesWSGIProcessGroup releasejango
WSGIApplicationGroup %{GLOBAL}
Alias /releasejango/static/ /Users/cakey/Development/releasejango_project/releasejango/static/
<Directory /Users/cakey/Development/releasejango_project/releasejango/static/>
Require all granted
</Directory>
WSGIScriptAlias /releasejango/ /Users/cakey/Development/releasejango_project/releasejango/django.wsgi process-group=releasejango
<Directory /Users/cakey/Development/releasejango_project/releasejango/>
<Files django.wsgi>
Require all granted
</Files>
</Directory>
When I visit http://127.0.0.1/releasejango/
, I get this error (although I can import django from an interpreter within my venv):
[Fri May 10 15:21:55.989484 2024] [wsgi:error] [pid 13122] [remote 127.0.0.1:51789] mod_wsgi (pid=13122): Failed to exec Python script file '/Users/cakey/Development/releasejango_project/releasejango/django.wsgi'.
[Fri May 10 15:21:55.990216 2024] [wsgi:error] [pid 13122] [remote 127.0.0.1:51789] mod_wsgi (pid=13122): Exception occurred processing WSGI script '/Users/cakey/Development/releasejango_project/releasejango/django.wsgi'.
[Fri May 10 15:21:56.000137 2024] [wsgi:error] [pid 13122] [remote 127.0.0.1:51789] Traceback (most recent call last):
[Fri May 10 15:21:56.000825 2024] [wsgi:error] [pid 13122] [remote 127.0.0.1:51789] File "/Users/cakey/Development/releasejango_project/releasejango/django.wsgi", line 13, in <module>
[Fri May 10 15:21:56.000844 2024] [wsgi:error] [pid 13122] [remote 127.0.0.1:51789] import django.core.handlers.wsgi
[Fri May 10 15:21:56.000872 2024] [wsgi:error] [pid 13122] [remote 127.0.0.1:51789] ModuleNotFoundError: No module named 'django'
This import error for django happens whether I have python-path or not.
How can I get Apache to use my venv’s Python 2.7 AND the venv’s packages? I know it is using python2.7 as it isn’t throwing a ModuleNotFoundError: No module named 'cStringIO'
.