3

我正在尝试使用 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

谁能解释我为什么会收到此错误?

4

2 回答 2

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
于 2009-07-09T05:37:12.873 回答
0

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

于 2009-07-09T06:39:21.783 回答