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

问题描述:

我正在尝试开发使用pinax的站点。 索引使用djapian模型我一直在试图运行“manage.py指数”作为cron作业,但总是收到pinax错误。 “错误:无模块名称通知”。但是,当我从shell运行它时,任务正确执行。我的crontab定义如下:
django“manage.py index”不作为cron作业执行

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 

任何人都可以解释为什么我收到此错误吗?

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

这里有一个shell脚本,我用它来换我自己的Django基于的cron任务:

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

ars感谢您的回复。以您的建议为指导,我解决了这个问题。 – kartikq 2009-07-09 14:56:38

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