我在 Mac 上使用 oh-my-zsh,python 3.6.1。我想运行一个 crontab 来执行一个 python3 脚本。
我最近的一次尝试是这个(我发现的 20 个不同的 stackoverflow 答案都没有工作,所以请不要将其作为重复项关闭:
SHELL=/bin/bash
24 12 * * * root source env/latest-env/bin/activate && /usr/local/bin/python3 /path/to/file/data_transfer.py
错误是ModuleNotFoundError: No module named 'some_module'
,因此它没有激活我的 virtual_env,因为该模型存在于最新的虚拟环境中。#!env/latest-env/bin/python
在我的脚本顶部使用并运行它时,我得到了同样的错误。
我也尝试了 venv 版本:
activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
但这是针对 python 2 的,所以错误是NameError: name 'execfile' is not defined
,当我将其更改为 exec 时,我得到NameError: name 'env' is not defined
. 但我知道这是我的道路。
如何在 crontab 中激活我最新的 venv 以运行我的脚本?