Crontab 未找到 python 个模块
Crontab not finding python modules
你好,我一直在关注 Whosebug 帖子,但我无法将 crontab 获取到 运行 我在 ubuntu 中的 python 脚本。
在与下面的用户交谈后,我修改了我的文件,但没有收到“moduleNotFoundError:没有名为 aioredis 的模块”
当我停用我的 py3.9 venv 环境并调用 python feed_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 包装脚本,例如将由 crontab 调用的“launcher.sh” .启动器将 cd 到脚本位置,管理 virtualenv,或者如果需要可能设置环境变量:
#!/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要灵活得多
你好,我一直在关注 Whosebug 帖子,但我无法将 crontab 获取到 运行 我在 ubuntu 中的 python 脚本。
在与下面的用户交谈后,我修改了我的文件,但没有收到“moduleNotFoundError:没有名为 aioredis 的模块”
当我停用我的 py3.9 venv 环境并调用 python feed_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 包装脚本,例如将由 crontab 调用的“launcher.sh” .启动器将 cd 到脚本位置,管理 virtualenv,或者如果需要可能设置环境变量:
#!/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要灵活得多