一直在努力使用 Cron 作业在 conda 环境中执行 python 脚本

问题描述 投票:0回答:1

我一直在尝试制作一个 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
python cron anaconda
1个回答
0
投票
#!/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
© www.soinside.com 2019 - 2024. All rights reserved.