django "manage.py index" не выполняется как задание cron - PullRequest
3 голосов
/ 09 июля 2009

Я пытаюсь разработать сайт, используя pinax. Чтобы проиндексировать модели с использованием djapian, я пытался запустить "manage.py index" в качестве задания cron, но продолжаю получать ошибку pinax. «Ошибка: модуль не имеет уведомлений» . Однако задача выполняется правильно, когда я запускаю ее из оболочки. Мое определение crontab выглядит следующим образом:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/mypath/test_project

# m h dom mon dow user  command
*/1 *   * * *   root    python /root/mypath/test_project/manage.py index >>/tmp/backup.log 2>&1

Может кто-нибудь объяснить, почему я получаю эту ошибку?

Ответы [ 2 ]

6 голосов
/ 09 июля 2009

Вероятно, ваша ошибка связана с тем, что у вас неправильно настроен PYTHONPATH, особенно для включения пути к модулю «уведомлений». Вам также необходимо установить путь DJANGO_SETTINGS_MODULE, если он еще не установлен в вашей среде.

Вот сценарий оболочки, который я использую, чтобы обернуть свою собственную задачу cron на основе django:

#!/bin/sh
DJANGO_SETTINGS_MODULE=mysettings
export DJANGO_SETTINGS_MODULE

PYTHONPATH=/path/to/python_libs:/path/to/my_django_apps
export PYTHONPATH

/path/to/python /path/to/my_django_script
0 голосов
/ 09 июля 2009

Как уже упоминалось, cron работает с совершенно другим набором переменных среды, чем вы. Самый простой способ исправить это - использовать скрипт, похожий на тот, который он написал.

...