Crontab找不到python模块



你好,我一直在关注stackoverflow的帖子,我无法获得crontab来在ubuntu中运行我的python脚本。

在与下面的用户交谈后,我修改了我的文件,但没有得到";moduleNotFoundError:没有名为aioredis"的模块;

当我停用py3.9 venv环境并调用pythonfeed_ingestor_to_postgres.py时,我会得到同样的错误。很明显,pipenv没有为我激活。有什么建议吗?

我的launcher.sh文件:

#!/bin/bash

WORKDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
cd $WORKDIR
activate(){
../../env/bin/activate
}

python3 feed_ingestor_to_postgres.py

我的crontab文件:

* * * * * echo "Great cron, awesome job!" > /var/log/nonsense
* * * * * /home/ubuntu/phobos/phobos-trading-engine/exchange_feeds/launcher.sh

我不知道在这里还能做什么。如有任何帮助,将不胜感激

为了更容易地从crontab管理python脚本,我建议使用一个简单的shell包装器脚本,例如"启动器.sh";它将由crontab调用。启动器将cd到脚本位置,管理virtualenv,或者如果需要,可能设置env-vars:

#!/bin/bash
WORKDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
cd $WORKDIR
source ../../env/bin/activate
python feed_ingestor_to_postgres.py

然后在crontab中,调用启动器而不是您的python脚本:

* * * * *       ~/path/to/launcher.sh

它将比直接编辑crontab 灵活得多

相关内容

  • 没有找到相关文章

最新更新