Saturday, January 8, 2022

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

Issue

  • 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


Answered By - sogu