Проблема с Apache2.2 + psycopg2.2.2 + mod_wsgi в Ubuntu - PullRequest
1 голос
/ 26 февраля 2011

Итак, у меня возникла проблема, аналогичная другим, о которых я слышал, что люди жалуются на Windows, но, похоже, у них проблема только с Windows, которая исправлена ​​в новой версии psycopg2.

По сути, я пытаюсь получить доступ к своему развернутому приложению только для того, чтобы получить в журналах следующее:

[Fri Feb 25 16:29:26 2011] [error] [client 5.7.0.205] TemplateSyntaxError: Caught ImproperlyConfigured while rendering: 'django.db.backends.postgresql_psycopg2' isn't an available database backend. 
[Fri Feb 25 16:29:26 2011] [error] [client 5.7.0.205] Try using django.db.backends.XXX, where XXX is one of:
[Fri Feb 25 16:29:26 2011] [error] [client 5.7.0.205]     'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3'
[Fri Feb 25 16:29:26 2011] [error] [client 5.7.0.205] Error was: cannot import name utils

Мне кажется, что все правильно установлено, используется buildout для получения зависимостей и тому подобное.Я также смог успешно запустить syncdb для своей базы данных и увидеть, как создаются таблицы.

Почему возникают проблемы, связанные с тем, что я настроил его для использования postgresql_psycopg2?Он даже не делает ничего особенного.Я могу запросить «myserver /» или «myserver / admin» или «myserver / whothehellcares» и постоянно получаю одну и ту же ошибку 500.

Что касается Apache, я использовал уже настроенный базовый сайт и просто добавилодна строка WSGIScriptAlias, указывающая на мой файл wsgi.Я даже пытался использовать WSGIDaemonProcess для определения целевого пользователя (www-data) для запуска процессов, но это не имело никакого эффекта.

Любые мысли или помощь приветствуются.

1 Ответ

0 голосов
/ 27 февраля 2011

В системах, отличных от Windows, может быть проблема 32 или 64 бита.

Создайте скрипт WSGI hello world, как описано в:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

После того, как у вас работает скрипт hello world, добавьте в начале его импорт для модуля psycopg2, который вы хотите использовать, и подтвердите его возможность импорта. Убедитесь, что используемый вами импорт принудительно импортирует расширение C .so для клиентского модуля pyscopy2.

Если это не удастся, вы можете получить лучшую ошибку в журналах ошибок Apache. Джанго иногда может замаскировать настоящую ошибку.

...