我一直在尝试制作一个 cron 作业,该作业应该在 conda 环境中执行 python 脚本。起初,由于在基本环境中执行脚本,我遇到了“导入模块错误”的问题。
所以我在 crontab 中明确添加了路径, PATH=/path/to/miniconda3/envs/my_env/bin
然后设置一个 bash 脚本“cron.sh”来调用我通常在终端中给出的命令;
#!/bin/sh
python3 /absolute/path/to/my_script.py
并将日志添加到 crontab。 所以我的 crontab 看起来像:
PATH=/path/to/miniconda3/envs/my_env/bin
* * * * * /absolute/path/to/cron.sh >> /absolute/path/to_log_file/clogs.log 2>&1
问题是我的日志文件中没有任何内容,而且我不明白哪里出了问题。
对此有什么帮助吗?
我使用的是 Ubuntu 20.04.4
康达信息
conda info
active environment : base
active env location : /config/miniconda3
shell level : 1
user config file : /config/.condarc
populated config files :
conda version : 24.5.0
conda-build version : not installed
python version : 3.12.2.final.0
solver : libmamba (default)
virtual packages : __archspec=1=haswell
__conda=24.5.0=0
__glibc=2.31=0
__linux=4.18.0=0
__unix=0=0
base environment : /config/miniconda3 (writable)
conda av data dir : /config/miniconda3/etc/conda
conda av metadata url : None
channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/linux-64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /config/miniconda3/pkgs
/config/.conda/pkgs
envs directories : /config/miniconda3/envs
/config/.conda/envs
platform : linux-64
user-agent : conda/24.5.0 requests/2.32.2 CPython/3.12.2 Linux/4.18.0-477.27.1.el8_8.x86_64 ubuntu/20.04.4 glibc/2.31 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8 aau/0.4.4 c/. s/. e/.
UID:GID : 1000:1000
netrc file : None
offline mode : False
#!/bin/sh
python3 /absolute/path/to/my_script.py
这里使用基础python3,你应该在调用python3之前激活venv,这可以通过以下方式完成
#!/bin/sh
source /absolute/path/to/venv/bin/activate && python3 /absolute/path/to/my_script.py