【问题标题】:opening venv with crontab on python3 mac在 python3 mac 上使用 crontab 打开 venv
【发布时间】:2017-12-25 15:38:28
【问题描述】:

我在 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 以运行我的脚本?

【问题讨论】:

    标签: python python-3.x cron python-venv


    【解决方案1】:

    一旦您创建了一个虚拟环境,该环境就会在其 /bin 子目录中绑定到解释器。因此,您应该找到一个 crontab 条目,例如

    24 12 * * * root /path/to/env/latest-env/bin/python /path/to/file/data_transfer.py
    

    会做你需要的一切。

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2021-10-04
      • 2020-01-20
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      • 1970-01-01
      相关资源
      最近更新 更多