如何在 crontab 中使用 Anaconda 环境运行我的 Python 脚本?

如何在 crontab 中使用 Anaconda 环境运行我的 Python 脚本?

我想用 crontab 安排一个任务,每天在特定时间在特定的 anaconda 环境中运行一个 python 文件。我有一个 python 脚本可以执行此操作。

python h.py如果我在终端的 anaconda 环境中执行该脚本,python 脚本就会运行。h.py位于主目录中。

我正在使用 Ubuntu 20.04,并且没有刷新或安装任何新的 cron 或 crontab

我尝试了以下命令来使其工作,但它们什么也不做(结果应该是一个文件夹,但显然尚未创建)

crontab -e

在 crontab 里面:

#[long descriptional text]
...
53 13 * * * cd /home/ && /home/user/anaconda3/envs/rapids/bin/python h.py    

这也没有任何作用:没有错误消息

我还尝试了以下方法:

32 14 * * * cd /home/Documents && /home/user/anaconda3/envs/rapids/bin/python h.py

34 14 * * * cd /home/Documents && /home/anaconda3/envs/rapids/bin/python h.py 2>&1

Stack Overflow 上的这个答案

这个答案在Unix和Linux上 无法与普通的 anaconda 一起使用。

我也读过以下解决方案但没有任何效果。

我想到过但没有尝试过的一件事是按照建议为 crontab 安装守护进程在这个答案中,但我找不到可以为 Ubuntu 安装的 cronie。

答案1

!! 授予 .sh 文件运行权限chmod u+x my_shell_file_name.sh

如果 Python 文件只需要 python(不需要其他库) 56 16 * * * /home/MY_ACTUAL_USERNAME/anaconda3/envs/rapids/bin/python /home/MY_ACTUAL_USERNAME/Documents/h.py

如果 Python 文件需要 anaconda 环境中的其他 Python 库:

  • 创建 SHELL 脚本

    nano my_shell_file_name.sh
    
  • 文件内容示例

    #!/bin/bash
    #conda activate rapids WRONG
    source ~/anaconda3/bin/activate MY_ANACONDA_ENVIRONMENT_NAME #correct
    #python Documents/my_python_file_name.py WRONG SEPARATLY GO TO FOLER WHTAN EXECUTE EITH python
    cd ~/Documents/folder_where_python_file_is/ #correct
    python my_python_file_name.py #correct
    conda deactivate
    
  • 使用以下命令启动 crontab

    crontab -e
    
  • 您可以添加到此 crontab 文件末尾的示例

    43 21 * * * /home/MY_ACTUAL_USERNAME/my_sehell_file_name.sh
    

相关内容