使用importterror访问Django模型时,crontab脚本会失败



我试图使用crontab定期执行python脚本。我按照这里给出的解决方案使用virtualenv执行命令。下面是我的crontab

SHELL=/bin/bash
HOME=/
MAILTO="myid@example.com"
* * * * * cd /home/jaskaran/edmhunters && /home/jaskaran/edmhunters/env/bin/python /home/jaskaran/edmhunters/scripts/db/songlist.py

我一直得到这个importterror

Traceback (most recent call last):
 File "/home/jaskaran/edmhunters/scripts/db/songlist.py", line 4, in <module>
   from hunt.models import DJ, Song
ImportError: No module named hunt.models

从shell运行时,脚本工作正常。我错过了什么?

由于Django加载INSTALLED_APPLICATIONS和所有当Django试图访问其设置时出现的隐式代码的方式,Django导入错误经常会误导。

为了解决这个问题,可以在脚本中创建一个Django管理命令。

如果你需要从shell脚本或cron运行virtualenv'ed Django脚本或管理命令,请尝试以下语法:

 export DJANGO_SETTINGS_MODULE=mymodule.settings ; /srv/django/myproject/venv/bin/python /srv/django/myproject/manage.py MyManagementCommand

最新更新