Проблемы с Django + mod-wsgi + psycopg2 - PullRequest
0 голосов
/ 27 января 2010

Итак, я пытаюсь заставить Django работать с mod-wsgi в первый раз. Я настроил Apache, как показано в примерах, и я почти уверен, что все сделал правильно.

Я не установил переменную PYTHON_EGG_CACHE, поэтому она использует значение по умолчанию: /var/www/.python-eggs. Я создал этот каталог и сделал его доступным для записи для пользователя www-data.

Когда я открываю сайт, он показывает вывод из шаблона 500.html и вот что я получаю в журнале:

   ...
   File "/usr/local/.../parts/django/django/db/__init__.py", line 17, in load_backend
     return import_module('.base', 'django.db.backends.%s' % backend_name)
   File "/usr/local/.../parts/django/django/utils/importlib.py", line 35, in import_module
     __import__(name)
   File "/usr/local/.../parts/django/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module>
     raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
 ImproperlyConfigured: Error loading psycopg2 module: cannot import name tz

Вот что у меня есть в /var/www/.python-eggs/

# ls -la /var/www/.python-eggs/
total 12
drwxr-xr-x 3 www-data www-data 4096 Jan 27 04:19 .
drwxr-xr-x 5 root     root     4096 Jan 27 04:18 ..
drwxr-xr-x 3 www-data www-data 4096 Jan 27 04:19 psycopg2-2.0.13-py2.5-linux-i686.egg-tmp

# ls -la /var/www/.python-eggs/psycopg2-2.0.13-py2.5-linux-i686.egg-tmp/psycopg2/
total 368
drwxr-xr-x 2 www-data www-data   4096 Jan 27 04:19 .
drwxr-xr-x 3 www-data www-data   4096 Jan 27 04:19 ..
-rwxr-xr-x 1 www-data www-data 363318 Jan 22 03:44 _psycopg.so

Единственный файл в каталоге яиц psycopg2 - _psycopg.so. Там нет файла tz.py, и я думаю, что это проблема.

Пожалуйста, совет.

P.S., я использую buildout и djangorecipe для развертывания Django. Я запускаю скрипт компоновки с пользователем buildout. Не уверен, если это имеет смысл, хотя.

P.P.S, psycopg2 установлен правильно, потому что я могу запустить syncdb.

Ответы [ 2 ]

1 голос
/ 04 февраля 2010

Хорошо, я нашел решение. Я использовал системный питон для сборки, и он уже имел psycopg2 в пакетах сайта. Кажется, был какой-то конфликт между psycopg2 в системных пакетах сайта и тем, который установлен buildout Я настроил виртуальную среду Python и использовал ее для сборки. И это помогло! Больше ошибок импорта.

0 голосов
/ 29 января 2010

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

...