The installed mod_wsgi is compiled for Python 3.8. You would need to uninstall that mod_wsgi version (likely the OS system package) and install mod_wsgi compiled for Python 2.7.
It is not possible to force mod_wsgi compiled for one Python version to use a virtual environment for a different Python version. This is explained in: https://modwsgi.readthedocs.io/en/master/user-guides/virtual-environments.html > On 23 Mar 2022, at 4:42 am, 'ERIK MEITNER' via modwsgi > <[email protected]> wrote: > > Hello, > I am attempting to set up Trac using a virtualenv under mod_wsgi on Apache > 2.4.41. > > I've run into a problem where I cannot get the Python script to run under the > Python2.7 interpreter from the virtualenv. > > I am able to run Trac independent of Apache/WSGI so I think the problem lies > in the WSGI configuration. > > > The paths referrred to below are: > /var/www/trac1.4 - Trac project environment > /var/www/trac1.4-venv - Python2.7 virtualenv with "trac" module installed via > pip > > > Apache config: > ------ > WSGIPythonHome /var/www/trac1.4-venv > > <VirtualHost *:80> > > ServerName trac.mydomain > ServerAdmin webmaster@mydomain > DocumentRoot /var/www/trac1.4/htdocs/ > WSGIDaemonProcess trac python-home=/var/www/trac1.4-venv > WSGIScriptAlias / /var/www/trac1.4/site/cgi-bin/trac.wsgi > WSGIProcessGroup trac > WSGIApplicationGroup %{GLOBAL} > </VirtualHost> > ------- > > > The trac.wsgi script: > --------------- > #!/var/www/trac1.4-venv/bin/python2.7 > # -*- coding: utf-8 -*- > import os > > import sys > > # for testing: > print('sys.prefix = %s' % repr(sys.prefix)) > print('sys.path = %s' % repr(sys.path)) > print('sys.executable = %s' % (sys.executable)) > print('sys.version_info = %s.%s.%s' % (sys.version_info[0:3])) > > > def application(environ, start_request): > if not 'trac.env_parent_dir' in environ: > environ.setdefault('trac.env_path', '/var/www/trac1.4') > if 'PYTHON_EGG_CACHE' in environ: > os.environ['PYTHON_EGG_CACHE'] = environ['PYTHON_EGG_CACHE'] > elif 'trac.env_path' in environ: > os.environ['PYTHON_EGG_CACHE'] = \ > os.path.join(environ['trac.env_path'], '.egg-cache') > elif 'trac.env_parent_dir' in environ: > os.environ['PYTHON_EGG_CACHE'] = \ > os.path.join(environ['trac.env_parent_dir'], '.egg-cache') > from trac.web.main import dispatch_request > return dispatch_request(environ, start_request) > --------------- > > > > Note what is logged when the script runs. Python V3.8.10 is the interpreter > being used. > ----------------- > [Tue Mar 22 12:32:40.155975 2022] [wsgi:error] [pid 1756932] sys.prefix > = '/var/www/trac1.4-venv' > [Tue Mar 22 12:32:40.156044 2022] [wsgi:error] [pid 1756932] sys.path > = ['/usr/lib/python38.zip', '/usr/lib/python3.8', > '/usr/lib/python3.8/lib-dynload'] > [Tue Mar 22 12:32:40.156072 2022] [wsgi:error] [pid 1756932] sys.executable > = /var/www/trac1.4-venv/bin/python > [Tue Mar 22 12:32:40.156100 2022] [wsgi:error] [pid 1756932] sys.version_info > = 3.8.10 > > > [Tue Mar 22 12:32:40.156527 2022] [wsgi:error] [pid 1756932] [remote > 10.130.176.220:48756] mod_wsgi (pid=1756932): Exception occurred processing > WSGI script '/var/www/trac1.4/site/cgi-bin/trac.wsgi'. > [Tue Mar 22 12:32:40.165606 2022] [wsgi:error] [pid 1756932] [remote > 10.130.176.220:48756] Traceback (most recent call last): > [Tue Mar 22 12:32:40.165667 2022] [wsgi:error] [pid 1756932] [remote > 10.130.176.220:48756] File "/var/www/trac1.4/site/cgi-bin/trac.wsgi", line > 30, in application > [Tue Mar 22 12:32:40.165682 2022] [wsgi:error] [pid 1756932] [remote > 10.130.176.220:48756] from trac.web.main import dispatch_request > [Tue Mar 22 12:32:40.165756 2022] [wsgi:error] [pid 1756932] [remote > 10.130.176.220:48756] ModuleNotFoundError: No module named 'trac' > ----------------- > > > The virtualenv IS python2.7: > -------- > me@rudin:~$ . /var/www/trac1.4-venv/bin/activate > (trac1.4-venv) me@rudin:~$ python -V > Python 2.7.18 > -------- > > I'd really appreciate it if you could show me what I'm doing wrong. > > > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/modwsgi/8eb50796-0abb-4c92-9fd4-e8fa91d19ae6n%40googlegroups.com > > <https://groups.google.com/d/msgid/modwsgi/8eb50796-0abb-4c92-9fd4-e8fa91d19ae6n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/modwsgi/B76FD365-EC65-48F1-A9B3-00BF65D60B10%40gmail.com.
