On Tuesday, May 30, 2017 at 2:03:25 PM UTC-4, ams wrote:
>
> 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
>

The problem seems to be that trac is not found on your python path.

To start, I would open a shell and see if "import trac" succeeds. 

Also, the path in your directory directive seems to be incorrect, and 
should be:
<Directory /path/to/trac/cgi-bin>

- Ryan

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

Reply via email to