I saw similar threads but it could not solve my issue so I try a new one. I can run my script from a shell script file from the terminal but I have an error when it is from a cronjob. I can give addition information as needed. Any help would be super appreciated. I am stuck here for too long.
I am using Anaconda3 and all modules are installed on Conda.
the shell script:
#!/bin/bash
export PATH=/usr/local/bin:${PATH}
echo $1 'report'
if [ -z "$1" ]; then
    echo 'no parameter about report type'
    exit 1
fi
TOPDIR=~/extra/cronjobs
JOBDIR=unify_reports
REPORT_TYPE=$1
DAY=$(date +"%Y%m%d")
SOURCE_PATH_base=~/market_risk
SUB_PATH=$REPORT_TYPE/src/code
INTERAPI_PATH=control_tdrive_mail
OUTPATH="${SOURCE_PATH_base}/$REPORT_TYPE/output"
OUT=$(date +%Y-%m-%d -d "1 day ago")$REPORT_TYPE.xlsx
echo 'output ' $OUTPATH $OUT
FILENO_FLAG=SINGLE
SUBJECT="[DATA BATCH] $REPORT_TYPE daily report for ""${OUT}"
TO="xxxxxxxxxxxxx@xxxxx.com"
CC=${TO}
top_dir=${TOPDIR}/${JOBDIR}
dir=$top_dir
if [ -e $dir ]; then
    echo 'exists' $dir
else
    mkdir $dir
    # log folder
    dir=$dir/logs
    if [ -e $dir ]; then
        echo 'exists' $dir
    else
        mkdir $dir
    fi
    echo 'log dorectory created' $dir
fi
cd ${TOPDIR}/${JOBDIR}
(
    # run each code to generate files
    cd "${SOURCE_PATH_base}/${SUB_PATH}"
    python3 $REPORT_TYPE.py
    # output file link
    dir=$top_dir/output_$REPORT_TYPE
    echo $dir 'output link'
    if [ -e $dir ]; then
        echo 'exists' $dir
    else
        # create link to real path
        echo 'no output link' $dir
        echo 'real output path' ${OUTPATH}
        cd ${TOPDIR}/${JOBDIR}
        trap `ln -s "${OUTPATH}" "output_${REPORT_TYPE}"` 1 2 3 15
        echo 'created output link' $dir
    fi
    # upload to gdrive
    echo 'test'  "${SOURCE_PATH_base}/${INTERAPI_PATH}"
    cd "${SOURCE_PATH_base}/${INTERAPI_PATH}"
    echo 'test2'   "${OUTPATH}/${OUT}" "${TO}" "${FILENO_FLAG}" "${SUBJECT}"
    python3 teamdrive_control.py Market_Risk $REPORT_TYPE "${OUTPATH}/${OUT}" "${TO}" "${FILENO_FLAG}" "${SUBJECT}"
) 2>&1 | xz -9ec > logs/${JOBDIR}-$(date +%s)_$REPORT_TYPE.log.xz
the error:
    Traceback (most recent call last):
  File "risk_position.py", line 3, in <module>
    import psycopg2 as ps
  File "/home/ubuntu/.local/lib/python3.6/site-packages/psycopg2/__init__.py", line 50, in <module>
    from psycopg2._psycopg import (                     # noqa
ImportError: libpq.so.5: cannot open shared object file: No such file or directory
/home/ubuntu/extra/cronjobs/unify_reports/output_risk_position output link
exists /home/ubuntu/extra/cronjobs/unify_reports/output_risk_position
test /home/ubuntu/market_risk/control_tdrive_mail
test2 /home/ubuntu/market_risk/risk_position/output/2020-02-16risk_position.xlsx  SINGLE [DATA BATCH] risk_position daily report for 2020-02-16risk_position.xlsx
----------base src:   /home/ubuntu/market_risk/control_tdrive_mail
Traceback (most recent call last):
  File "teamdrive_control.py", line 10, in <module>
    import common_config
  File "/home/ubuntu/market_risk/control_tdrive_mail/common_config.py", line 15, in <module>
    from rpt_utils import Parameters
  File "/home/ubuntu/market_risk/control_tdrive_mail/utils/rpt_utils.py", line 1, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'
EDIT: new error after 'pip3 install pandas'
Traceback (most recent call last):
  File "risk_position2.py", line 3, in <module>
    import psycopg2 as ps
  File "/home/ubuntu/.local/lib/python3.6/site-packages/psycopg2/__init__.py", line 50, in <module>
    from psycopg2._psycopg import (                     # noqa
ImportError: libpq.so.5: cannot open shared object file: No such file or directory
/home/ubuntu/extra/cronjobs/unify_reports/output_risk_position2 output link
exists /home/ubuntu/extra/cronjobs/unify_reports/output_risk_position2
test /home/ubuntu/market_risk/control_tdrive_mail
test2 /home/ubuntu/market_risk/risk_position2/output/2020-02-16risk_position2.xlsx SINGLE [DATA BATCH] risk_position2 daily report for 2020-02-16risk_position2.xlsx
----------base src:   /home/ubuntu/market_risk/control_tdrive_mail
Traceback (most recent call last):
  File "teamdrive_control.py", line 10, in <module>
    import common_config
  File "/home/ubuntu/market_risk/control_tdrive_mail/common_config.py", line 16, in <module>
    from db_utils import DBQuery
  File "/home/ubuntu/market_risk/control_tdrive_mail/utils/db_utils.py", line 1, in <module>
    import psycopg2 as ps
  File "/home/ubuntu/.local/lib/python3.6/site-packages/psycopg2/__init__.py", line 50, in <module>
    from psycopg2._psycopg import (                     # noqa
ImportError: libpq.so.5: cannot open shared object file: No such file or directory
 
     
    