Cannot import module

Я создал веб-приложение python с такой структурой каталогов:

# cd /usr/local/www/myapp

modules
    layout
        __init__.py
        layout.py
packages
public
myapp.wsgi

Я установил свой PYTHONPATH в:

/usr/local/www/myapp/modules:/usr/local/www/myapp/packages

В myapp.wsgi я пытаюсь сделать:

import layout

Но я получаю Internal server error. Почему?

Это мой myapp.wsgi (если я удалю строку import layout, он работает):

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]

Полное сообщение об ошибке, которое я получаю:

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.

Моя конфигурация virtualhost:

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

Ошибка из /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

Output of print sys.path:

enter image description here

6
задан Richard Knop 20 January 2012 в 16:15
поделиться