ImportError: Нет модуля с именем django.core.handlers.wsgi в установке конфигурации django mod_wsgi на apache

Я попытался установить django для работы с apache и mod_wsgi, но получил эту ошибку:

ImportError: No module named django.core.handlers.wsgi,

I Я прочитал, что это может быть ошибка пользователя ...

На консоли (ssh) с доступом root у меня нет проблем с доступом к django.core.handlers.wsgi, но когда apache запрашивает доступ к нему, не может

Мой django.wsgi:

import os
import sys

sys.path.append('my/rep/parents/of/my/project')
sys.path.append('/usr/lib/python2.4/site-packages/django')
os.environ['DJANGO_SETTINGS_MODULE'] = 'montest.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp'


import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Мой vhost.conf:

Alias /media/ my/rep/parents/of/my/projet/montest/media/

<Directory my/rep/parents/of/my/projet/montest/media>
    Order deny,allow
    Allow from all
</Directory>

WSGIScriptAlias /montest my/rep/parents/of/my/projet/django.wsgi

<Directory my/rep/parents/of/my/projet>
    Order deny,allow
    Allow from all
</Directory>

РЕДАКТИРОВАТЬ:

Хорошо, мой результат для ldd mod_wsgi.so

linux-gate.so.1 => (0x0013c000) 
libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00663000) 
libpthread.so.0 => /lib/libpthread.so.0 (0x00bff000) 
libdl.so.2 => /lib/libdl.so.2 (0x0023b000) 
libutil.so.1 => /lib/libutil.so.1 (0x00420000) 
libm.so.6 => /lib/libm.so.6 (0x00110000) 
libc.so.6 => /lib/libc.so.6 (0x00240000) /lib/ld-linux.so.2 (0x0059f000) 

Итак, я решил проверить свой mod_wsgi устанавливается с помощью test.wsgi

test.wsgi

def application(environ, start_response): 
    status = '200 OK'
    output = 'Hello world, I am a wsgi app!' 
    response_headers = [('Content-Type', 'text/plain'), ('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 
    return [output]

my vhost.conf:

WSGIScriptAlias /test /var/www/vhosts/mydomain.fr/subdomains/django/httpdocs/test.wsgi 
<Directory /var/www/vhosts/mydomain.fr/subdomains/django/httpdocs> 
    Order allow,deny 
    Allow from all 
    Options +ExecCGI 
</Directory> 

Теперь он работает ... теперь я попробую свою конфигурацию django.wsgi

33
задан hobs 7 July 2012 в 23:45
поделиться

3 ответа

У меня уже возникала эта проблема, потому что у процесса Apache/mod_wsgi не было разрешения на чтение модулей. Вы можете сделать свой каталог site-packages/django общедоступным для чтения или добавить другие соответствующие разрешения пользователя/группы.

3
ответ дан 27 November 2019 в 19:30
поделиться

Почему вы вообще пытаетесь добавить каталог site-packages в sys.path? Если ваш mod_wsgi скомпилирован для Python 2.4, то он уже должен искать в каталоге site-packages. Похоже, ваш mod_wsgi даже не скомпилирован для Python 2.4.

Запустите:

ldd mod_wsgi.so

для вашего установленного файла mod_wsgi.so, чтобы выяснить, для какой версии Python он скомпилирован, и опубликуйте результат.

4
ответ дан 27 November 2019 в 19:30
поделиться

Эта строка определенно неверна:

sys.path.append('/usr/lib/python2.4/site-packages/django')

Установите Django с/для версии Python, для которой был создан mod_wsgi.

0
ответ дан 27 November 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: