【问题标题】:django "manage.py index" does not execute as a cron jobdjango“manage.py index”不作为 cron 作业执行
【发布时间】:2009-07-09 05:26:26
【问题描述】:

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

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

【问题讨论】:

    标签: django pinax


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。根据您的建议,我已经解决了这个问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多