首页 > 解决方案 > Django crontab 不在后台工作

问题描述

django-crontab作为我项目的一部分,我正在运行一些 cron 作业。我为这个特定项目设置了一个虚拟环境。

因此,在激活环境后,我使用以下命令添加作业:

python manage.py crontab add

我看到我的作业已成功添加到操作系统 crontab,但是当我看到日志时,我发现它无法找到安装在虚拟环境中的某些模块(阅读全部)。

但是,如果我通过将哈希传递给运行命令来手动运行这些 cron,它会成功运行。

经过进一步检查,我发现将 crons 添加到 crontab 时,python 二进制文件指向全局(系统级二进制文件)而不是虚拟级二进制文件。

我能想到的唯一解决方案是在系统级别运行 pip install ,但这会弄乱我打算创建的 sanbox 环境。

有任何想法吗?

标签: pythondjangocrondjango-cron

解决方案


django-crontab不再维护。该库的最后一次更改发生在 2 年前。我真的建议停止使用它。

为了修复该错误,您可以使用任CRONTAB_PYTHON_EXECUTABLE一设置从您的环境中指向 python 可执行文件,或者CRONTAB_COMMAND_PREFIX添加一些将在运行 python 之前激活此 virtualenv 的内容。


推荐阅读