I created a python web application with this directory structure:
# cd /usr/local/www/myapp modules layout __init__.py layout.py packages public myapp.wsgi
I installed PYTHONPATH for:
/usr/local/www/myapp/modules:/usr/local/www/myapp/packages
In myapp.wsgi I am trying to do:
import layout
But I get an internal server error. Why?
This is my myapp.wsgi (if I delete the import layout line, it works):
import sys import wsgiref import layout def application(environ, start_response): response_status = '200 OK' response_body = 'Hello! ' response_headers = [] content_type = ('Content-type', 'text-plain') content_length = ('Content-Length', str(len(response_body))) response_headers.append(content_type) response_headers.append(content_length) start_response(response_status, response_headers) return [response_body]
The full error message that I get:
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.
My virtual host configuration:
<VirtualHost *:80> ServerName localhost ServerAlias localhost ServerAdmin webmaster@example.com DocumentRoot /usr/local/www/myapp/public <Directory /usr/local/www/myapp/public> Order allow,deny Allow from all </Directory> WSGIScriptAlias / /usr/local/www/myapp/myapp.wsgi <Directory /usr/local/www/myapp> Order allow,deny Allow from all </Directory> </VirtualHost>
Error from / var / log / httpd -error.log:
[Fri Jan 20 15:31:03 2012] [error] [client 192.168.201.123] mod_wsgi (pid=1725): Target WSGI script '/usr/local/www/myapp/myapp.wsgi' cannot be loaded as Python module. [Fri Jan 20 15:31:03 2012] [error] [client 192.168.201.123] mod_wsgi (pid=1725): Exception occurred processing WSGI script '/usr/local/www/myapp/myapp.wsgi'. [Fri Jan 20 15:31:03 2012] [error] [client 192.168.201.123] Traceback (most recent call last): [Fri Jan 20 15:31:03 2012] [error] [client 192.168.201.123] File "/usr/local/www/myapp/myapp.wsgi", line 3, in <module> [Fri Jan 20 15:31:03 2012] [error] [client 192.168.201.123] import layout [Fri Jan 20 15:31:03 2012] [error] [client 192.168.201.123] ImportError: No module named layout
Print output sys.path:
