使用activate从crontab调用python脚本

Tim*_*mmy 6 python crontab virtualenv

我如何从crontab调用一个需要使用activate(source env/bin/active)的python脚本?

mip*_*adi 17

Virtualenv的激活脚本非常简单.它主要设置了virtualenv的Python解释器的路径; PS1如果你不在交互式shell中,那么它所做的其他事情(设置,保存旧变量等)并不是必需的.所以,最简单的方法就是用正确的Python解释器,它可以在以下两种方式之一进行启动您的Python脚本:

1.设置Python脚本以使用virtualenv的Python解释器

假设您的virtualenv的解释器在~/virtualenv/bin/python,您可以将该路径放在Python脚本的顶部:

#!/home/user/virtualenv/bin/python
Run Code Online (Sandbox Code Playgroud)

然后像往常一样从crontab启动脚本.

2.在cronjob中使用适当的Python解释器启动脚本

假设您的脚本处于~/bin/cronjob并且您的virtualenv的Python解释器处于~/virtualenv/python,您可以将它放在您的crontab中:

* * * * * /home/user/virtualenv/python /home/user/bin/cronjob
Run Code Online (Sandbox Code Playgroud)

  • 如果它们也安装在虚拟环境中,或者"全局"站点包目录中,则应该找到它们; 否则,你必须将它们放在你的'$ PYTHONPATH`中,这有点丑陋,但可以通过启动带有`/ usr/bin/env`的Python bin或者某些东西来实现. (2认同)