2015-05-25 2 views
1

Когда я пытаюсь получить доступ к сайту django, я получаю сообщение «Внутренняя ошибка сервера». Я использую Django 1.8, Python 2.7.10, centos 6.5 и apache.Проблема при развертывании приложения django

В апача журнале я получаю следующее сообщение об ошибке:

mod_wsgi (pid=23866): Target WSGI script '/abc/abc/abc/wsgi.py' cannot be loaded as Python module. 
[Mon May 25 14:40:47 2015] [error] [client xyz] mod_wsgi (pid=23866): Exception occurred processing WSGI script '/abc/abc/abc/wsgi.py'. 
[Mon May 25 14:40:47 2015] [error] [client xyz] Traceback (most recent call last): 
[Mon May 25 14:40:47 2015] [error] [client xyz] File "/abc/abc/abc/wsgi.py", line 12, in <module> 
[Mon May 25 14:40:47 2015] [error] [client xyz]  from django.core.wsgi import get_wsgi_application 
[Mon May 25 14:40:47 2015] [error] [client xyz] File "/abc/lib/python2.7/site-packages/django/__init__.py", line 1, in <module> 
[Mon May 25 14:40:47 2015] [error] [client xyz]  from django.utils.version import get_version 
[Mon May 25 14:40:47 2015] [error] [client xyz] File "/abc/lib/python2.7/site-packages/django/utils/version.py", line 7, in <module> 
[Mon May 25 14:40:47 2015] [error] [client xyz]  from django.utils.lru_cache import lru_cache 
[Mon May 25 14:40:47 2015] [error] [client xyz] File "/abc/lib/python2.7/site-packages/django/utils/lru_cache.py", line 28 
[Mon May 25 14:40:47 2015] [error] [client xyz]  fasttypes = {int, str, frozenset, type(None)}, 
[Mon May 25 14:40:47 2015] [error] [client xyz]     ^
[Mon May 25 14:40:47 2015] [error] [client xyz] SyntaxError: invalid syntax 

Благодаря

ответ

7

Хотя вы говорите, что вы работаете в Python 2.7, эта ошибка указывает на то, что на самом деле вы используете 2.6, так как набор литералов были только введенный в 2.7.

Проблема в том, что mod_wsgi скомпилирован с конкретной версией Python, которая в вашем случае является той, которая поставляется с Centos 6.5. Вам нужно будет перекомпилировать его для версии 2.7 или найти уже скомпилированную версию.

0

Вам необходимо начать использовать virtualenv для своего проекта django. Вот хороший tutorial. Для временного решения вы можете просто запустить django с python 2.7, используя python2.7 manage.py runserver. Тем не менее, настоятельно рекомендуется посмотреть в virtualenv. Делает жизнь намного проще.

Что касается того, чтобы mod_wsgi использовал python 2.7, вам необходимо перекомпилировать его. Для этого просто загрузите исходный код и выполнить:

$ ./configure 
$ make 
$ sudo make install 

Они имеют краткое руководство по установке, вы можете получить доступ к here.

+0

Спасибо, пробовал сделать mod_wsgi, но продолжал получать одну ошибку после других и не мог завершить шаг make, поэтому перешел на centos 7, у которого уже был встроен python 2.7, и он отлично работал. – ak111in

Смежные вопросы