django“manage.py index”不作为cron作业执行

时间:2009-07-09 05:26:26

标签: django pinax

我正在尝试使用pinax开发一个网站。 要使用djapian对模型建立索引,我一直试图将“manage.py index”作为cron作业运行,但不断出现pinax错误。 “错误:没有名为通知的模块”。但是,当我从shell运行它时,任务正确执行。我的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 个答案:

答案 0 :(得分:6)

您的错误可能是因为您未正确设置PYTHONPATH,尤其是包含“通知”模块的路径。您还需要设置DJANGO_SETTINGS_MODULE路径,如果它尚未在您的环境中设置。

这是我用来包装我自己的基于django的cron任务的shell脚本:

#!/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

答案 1 :(得分:0)

正如所提到的,cron运行的环境变量完全不同于你。解决这个问题的最简单方法是使用类似于他发布的脚本。