通过 cron 更新虚拟环境中的 pip 包

Updating pip package in virtual env via cron

我不确定为什么会这样,我目前在 crontab -e

中设置了这个
*/30 * * * * cd /home/www/ && source env/bin/activate && pip install --upgrade youtube_dl >/dev/null 2>&1

问题是这实际上并没有更新脚本。当我 运行 只是

cd /home/www/ && source env/bin/activate && pip install --upgrade youtube_dl >/dev/null 2>&1

在终端中它会升级,但是当它通过 cron 运行s 时它不会。

我是否应该将其分解为 bash 脚本以确保成功?我的印象是,如果我可以 运行 在终端中成功执行命令,它也应该在 crontab 上成功执行。

cron 使用 /bin/sh 作为它的 shell,而不是 bash。您正在调用 source,这是一个 bash 命令。

注意:您可以将 source 替换为 .,两个 shell 都会识别该命令。