2009-07-29 3 views
1

Недавно я спросил question об ошибке в apache/mod_wsgi, распознающей каталог скриптов python. Сообщество любезно ответило на вопрос, в результате успешной установки. Теперь у меня есть другая ошибка, то демон сервера (ну, технически это услуга окна, я говорю томат вы говорите ...) не находит ни одного из моделей, вот полный отслеживающий:Ошибка в Django, запущенном на Apache/mod_wsgi

Окружающая среда:

Request Method: GET 
Request URL: `http://localhost/polls/` 
Django Version: 1.0.2 final 
Python Version: 2.6.2 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.admin', 
'mysite.polls'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware') 
ошибка

Шаблон: В шаблоне C: \ Users \ Маркоса \ документы \ djangotemplates \ опросы \ опрос _ list.html, ошибка в строке 1 Caught исключение при визуализации: нет такой таблицы: polls_poll

 
     1 : {% if object_list %} 
     2 :  <ul> 
     3 :  {% for poll in object_list %} 
     4 :   <li> <a href="{{poll.id}}/">{{ poll.question }} </a> </li> 
     5 :  {% endfor %} 
     6 :  </ul> 
     7 : {% else %} 
     8 :  <p>No polls are available.</p> 
     9 : {% endif %} 
     10 : 

Tra ceback:

 File "C:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response 
     86.     response = callback(request, *callback_args, **callback_kwargs) 
    File "C:\Python26\lib\site-packages\django\views\generic\list_detail.py" in object_list 
      101.  return HttpResponse(t.render(c), mimetype=mimetype) 
    File "C:\Python26\lib\site-packages\django\template\__init__.py" in render 
      176.   return self.nodelist.render(context) 
    File "C:\Python26\lib\site-packages\django\template\__init__.py" in render 
      768.     bits.append(self.render_node(node, context)) 
    File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node 
      81.    raise wrapped 
Exception Type: TemplateSyntaxError at /polls/ 
Exception Value: Caught an exception while rendering: no such table: polls_poll 

где-то кто-то посоветовал мне использовать manage.py dbshell и сценарий ответил:
Ошибка: Вы, кажется, не установлена ​​программа «sqlite3» или на вашем пути.

Но все же Django запускает приложение отлично. Я не вижу, что изменилось в среде, чтобы так сильно ввернуть веб-приложение. Пожалуйста помоги!

ответ

6

У вас нет базы данных. Непонятно, почему у вас нет драйвера sqlite3. Однако у вас нет sqlite3, и у вас нет базы данных.

  1. Запустить manage.py syncdb построить базу данных.

    • Обязательно используйте тот же settings.py как ваш экземпляр для производства.

    • Убедитесь, что ваш settings.py имеет правильный драйвер. Вы используете SQLite3, убедитесь, что используется абсолютное имя пути.

    • Обязательно используйте один и тот же PYTHONPATH и рабочий каталог в качестве продукции, чтобы быть уверенным, что все модули на самом деле нашли

  2. Run обычный SQL, чтобы убедиться, что вы на самом деле построили базу данных.

  3. Запустите приложение Django /admin, чтобы узнать, что находится в базе данных.

SQLite3 включен в состав Python. Чтобы его не хватало, ваша установка Python должна быть повреждена или неполна. Переустановите с нуля.

0

Попробуйте manage.py syncdb, чтобы убедиться, что django может подключаться к базе данных и создавать все таблицы.

+0

Уже сделано, ничего не произойдет. Я предположил, что сценарий не нашел ошибок – marcoslhc

1

Я решаю проблему, добавляя каталог двоичных файлов sqlite3 в переменную среды PYTHONPATH.

0

Просто исправлена ​​проблема. Я думаю, вы должны добавить свое имя приложения в список INSTALLED_APPS в settings.py.

0

Ни один из них не был прав для меня, когда я пытался запустить manage.py dbshell, но потом это уже 3 года, а я на 10.7. Я добавил мой MySQL путь к моей переменной PATH, как это:

PATH = $ PATH: /usr/local/mysql-5.5.16-osx10.6-x86_64/bin

На самом деле, это лучше поставить этот в файл .profile. С Mac OS 10.7 вам, вероятно, придется создать один из них, если вы еще этого не сделали. В окне терминала просто введите cd, затем нажмите return, чтобы вернуться в ваш домашний каталог, затем выполните vi .profile, чтобы создать новый файл, и вставьте:

export PATH = $ PATH:/usr/local/mysql -5.5.16-osx10.6-x86_64/bin

Здесь я подробно расскажу о людях, которые не знают все это с головы, как и я. При следующем входе в ваш путь будет установлен автоматически. Чтобы установить его сейчас из файла .profile, просто выполните:

. ./.profile

Чтобы проверить новую переменную PATH, сделайте следующее:

эхо $ PATH