Search code examples
pythonpython-3.xcronanaconda

How to run my Python script with Anaconda environment in crontab?


  • I want to scedual a task with crontab to run a python file in a specific anaconda environment every day at a certain time.
  • I also have a python script to do so.
  • The pythons script runs if I jsut execute it with python h.py in the anaconda evoronment in terminal. h.py is in the home directory
  • I am usaing Ubuntu 20.04, and i havent refreshed on intalled any new cron or crontab
  • I have tried the following commands to get it work but they just do Nothing (the result should be a folder and it is learly not has been created)
crontab -e

Inside the crontab:

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

this alos does nothing no error message

I have also tried the following solutions

  • 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 https://stackoverflow.com/a/64470729/10270590
  • 44 14 * * * cd /home/Documents && /home/user/anaconda3/envs/rapids/bin/python h.py >> ~/cron.log 2>&1
  • not worked with normal anaconda - https://unix.stackexchange.com/a/572951/400960
  • 58 14 * * * /home/Documents && /home/user/anaconda3/envs/rapids/bin/python home/Documents/h.py >> ~/cron.log 2>&1
  • 59 14 * * * /home/Documents && /home/anaconda3/envs/rapids/bin/python home/Documents/h.py >> ~/cron.log 2>&1
  • 58 14 * * * /home/user/anaconda3/envs/rapids/bin/python home/Documents/h.py
  • 10 15 * * * /home/anaconda3/envs/rapids/bin/python home/Documents/h.py
  • Run this for analytics purpose with no results (no file has been created, no printout in terminal) 36 15 * * * /home/anaconda3/envs/rapids/bin/python -c "import sys; sys.stdout.write('out\n'); sys.stderr.write('err\n')" >> /home/so_test.log 2>&1

I have also read teh following solutions but nothing have realy worked


Solution

  • If the Python file only need python (not other library)

    56 16 * * * /home/MY_ACTUAL_USERNAME/anaconda3/envs/rapids/bin/python /home/MY_ACTUAL_USERNAME/Documents/h.py
    

    If Python file requires other python libraries that is in the anaconda environment:

    • create a SHELL script
    nano my_sehell_file_name.sh
    
    • Example what should be inside the file
    #!/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
    
    • start up corntab by

    corntab -e

    • ex what you can write to the end of this corntab file
    43 21 * * * /home/MY_ACTUAL_USERNAME/my_sehell_file_name.sh