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

发布于 2024-07-26 17:30:09 字数 495 浏览 5 评论 0原文

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

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

I am trying to develop a site using pinax.
To index the models using djapian I've been trying to run "manage.py index" as a cron job but keep getting a pinax error. "Error: No module named notification". However the task executes correctly when i run it from the shell. My crontab definition is as follows:

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

Can anyone explain why I am receiving this error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

青萝楚歌 2024-08-02 17:30:09

您的错误可能是因为您没有正确设置 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

Your error is probably because you don't have your PYTHONPATH set properly, especially to include the path to the "notification" module. You also need to set the DJANGO_SETTINGS_MODULE path, if it isn't already set in your environment.

Here's a shell script I use to wrap my own django based cron task:

#!/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
爱你不解释 2024-08-02 17:30:09

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

As ars alluded to, cron runs with an entirely different set of environment variables than you do. The easiest way to fix that is to use a script similar to what he posted.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文