我关注了documentation
在我的 django 项目特定的 venv (myproject/venv) 中,我安装了 django-crontab[0.7.1] 使用命令:
(venv) pip3 install django-crontab
添加到 settings.py
INSTALLED_APPS = (
...
'django_crontab',
)
CRONTAB_COMMAND_SUFFIX = '2>&1'
CRONJOBS = [
('*/1 * * * *', 'django.core.management.call_command', ['my_command'])
]
接下来当我运行 python manage.py crontab add
时出现错误:
(venv) python manage.py crontab add
/bin/sh: line 1: /usr/bin/crontab: No such file or directory
adding cronjob: (b27648b2dab947d53fe7e8c052bcd9a7) -> ('*/1 * * * *',
'django.core.management.call_command', ['my_command'])
sh: line 1: /usr/bin/crontab: No such file or directory
但是我手动检查了 /usr/bin/ 并且我看到一个名为 crontab 的文件存在。
之后,当我运行 python manage.py crontab show
时,没有添加任何作业。
此时我不知道该怎么办。需要帮助。
答案 0 :(得分:0)
编辑:好的,我想我明白这个问题了。该脚本在虚拟环境中运行,因此无法访问cron。我不知道完全解决这个问题,但我想你可以检查这个页面给出的解决方案:https://codeinthehole.com/tips/running-django-cronjobs-within-a-virtualenv/
替代解决方案,只需在没有 Venv 的情况下运行脚本。
您的系统上似乎没有安装 Cron。
试试这个(如果你使用的是 Ubuntu 或任何其他基于 Debian 的发行版):
sudo apt-get update
sudo apt-get install cron