You have the following:
environ.setdefault('trac.env_path', '/path/to/trac')
Does your wsgi file literally say '/path/to/trac' ? Or have you properly
configured it for your actual path?
From: "ams" <[email protected]>
To: "Trac Users" <[email protected]>
Sent: Tuesday, May 30, 2017 2:03:25 PM
Subject: [Trac] "ImportError: No module named trac.web.main" on fresh install
with WSGI
Recently rebuilt a server with RHEL7. I had to reinstall trac too, but after
installing I am seeing the error "ImportError: No module named trac.web.main"
in the Apache HTTPD log files.
Here are my install steps:
-----------------------------------------
## Install trac
pip install trac
## create the wsgi script
trac-admin /path/to/trac/ initenv
trac-admin /path/to/trac/ deploy /tmp/deploy
## examine script
cat /tmp/deploy/cgi-bin/trac.wsgi
[root@nbs]# cat /path/to/trac/cgi-bin/trac.wsgi
#!/usr/bin/python2
# -*- coding: utf-8 -*-
#
# Copyright (C)2008-2009 Edgewall Software
# Copyright (C) 2008 Noah Kantrowitz <[email protected]>
# All rights reserved.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at http://trac.edgewall.org/wiki/TracLicense.
#
# This software consists of voluntary contributions made by many
# individuals. For the exact contribution history, see the revision
# history and logs, available at http://trac.edgewall.org/log/.
#
# Author: Noah Kantrowitz <[email protected]>
import os
def application(environ, start_request):
if not 'trac.env_parent_dir' in environ:
environ.setdefault('trac.env_path', '/path/to/trac')
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)
## Move trac scripts to correct location
mv /tmp/deploy/* /path/to/trac/
## Set permissions
chown -R apache:apache /path/to/trac/
chmod 700 /path/to/trac/cgi-bin/trac.wsgi
## create trac.conf for Apache HTTPD
WSGIScriptAlias /trac /path/to/trac/cgi-bin/trac.wsgi
<Directory /path/to/trac/>
WSGIApplicationGroup %{GLOBAL}
# For Apache 2.2
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
# For Apache 2.4
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
<Location "/trac/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /data/www/htpasswd/trac.htpasswd
Require valid-user
</Location>
## Restart apache
service httpd restart
## browser shows:
Internal Server Error
## httpd error log shows:
[DATE] [:error] [pid 3286] [client CLIENT_IP:55491] mod_wsgi (pid=3286):
Exception occurred processing WSGI script '/path/to/trac/cgi-bin/trac.wsgi'.
[DATE] [:error] [pid 3286] [client CLIENT_IP:55491] Traceback (most recent call
last):
[DATE] [:error] [pid 3286] [client CLIENT_IP:55491] File
"/path/to/trac/cgi-bin/trac.wsgi", line 30, in application
[DATE] [:error] [pid 3286] [client CLIENT_IP:55491] from trac.web.main import
dispatch_request
[DATE] [:error] [pid 3286] [client CLIENT_IP:55491] ImportError: No module
named trac.web.main
## If I point trac.conf WSGI to a test script:
def application(environ, start_response):
start_response('200 OK',[('Content-type','text/html')])
return ['<html><body>Hello World!</body></html>']
I see the "Hello World" in the browser. WSGI appears to be working OK.
Something is off in the trac installation but I am unsure what exactly. Help is
greatly appreciated.
ams
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected] .
To post to this group, send email to [email protected] .
Visit this group at https://groups.google.com/group/trac-users .
For more options, visit https://groups.google.com/d/optout .
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.