Python script called by a shell script

experts, i wrote a python script to do a certain job, i tried it and it is working fine, i want this script to be executed automatically after a ksh script, the problem is when i execute the ksh script my python script runes perfectly after the ksh script as I have include it at the end of the ksh script with the full path which is the same directory I am running the script from, but when a user run it from an oracle forms i got an error msg says

No such file or directory

I notice that the KSH script is executing a .profile file, i have include that too, i need an expert to tell me how can i execute my python inside the this ksh script.

this is the KSH script

#! /usr/bin/ksh
. $POWERCARD_HOME/.pcard_profile
#/pcard16/pwrcard/.pcard_profile

echo "================" >> $TRACE/card_production_batch.stat
echo "START PROCESSING" >> $TRACE/card_production_batch.stat
date_id=`date +%y%m%d%H%M`
echo $date_id >> $TRACE/card_production_batch.stat

card_production card_production $1 C 1>$TRACE/card_production_batch.stat  2>&1


export r=$?

## IOManager
#export TASK_NAME=card_production

#if [$proc_status -eq 1 ] 1>>/dev/null 2>&1
#then
#        STATUS=OK
#else
#        STATUS=KO
#fi
#export STATUS

#.iomanager1.sh
## IOManager
d=`date +%y%m%d%H%M`

echo $date_id >> $TRACE/card_production_batch.stat
echo "END   PROCESSING" >> $TRACE/card_production_batch.stat
echo "================" >> $TRACE/card_production_batch.stat

#echo $(date) >> /pcard16/pwrcard/usr/shl/mahdi_test

./embosingExtraction.py 2>>/pcard16/pwrcard/usr/shl/embose_debug.txt
#.$SHL/embosingExtraction.py 2>>/pcard16/pwrcard/usr/shl/embose_debug.txt
echo '---------------------------------------------' >>/pcard16/pwrcard/usr/shl/embose_debug.txt
#echo $(date) >> mahdi_test


exit $r

embosingExtraction.py is my python script i have placed it in the same directory of the KSH script. Here is a look at .pcard_profile that executed in the first line of the KSH script

#! /usr/bin/ksh
#######################################################
### Include Environnement Variables                  ##
#######################################################
export HOME=/pcard16/pwrcard
export POWERCARD_HOME=$HOME
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10g
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export ORACLE_SID=pcard
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORACLE_LIB=$ORACLE_HOME/lib:/usr/lib:/lib
export TRACE=/pcard17/trace
export ARCHIVE=$HOME/usr/archive
export QUEUE=$HOME/usr/queue
export EXPORT=$HOME/usr/export
export BIN=$HOME/usr/bin
export SHL=$HOME/usr/shl
export CTL=$HOME/usr/ctl
export PATH=$PATH:$BIN:$SHL
export PATH=$PATH:$BIN:$SHL
export DATA=$HOME/usr/data
export DB_MODE=0
export DB_USER_PROD="xxxxxxxxxx"
export DB_USER_TEST="xxxxxxxxxx"
export DB_PASSWORD_PROD="xxxxxxxxxxxxxxxxxx"
export DB_PASSWORD_TEST="xxxxxxxxxxxxxxxxxx"
export EXP_USER=xxxxxxxx/xxxxxxxxx
#mahdi_addition:
export PATH=$PATH:/pcard16/pwrcard/usr/shl
export POWERCARD_TRACE=/pcard17/trace
#######################################################
export HOME_ENV_MAKEFILE=$HOME/src/libs
export PLATFORM="SOLARIS"
#export CC="fcc -KV9"
export LLIBSOCKETS=-lsocket
#######################################################
###  User compilation
#######################################################
export usercomp=xxxxxxxxxxx
export passwcomp=xxxxxxxxxx
export DEBUG_MODE="0"

Executables, whether script or compiled, python or shell or whatever, all need execute permissions, scripts all need a $! first line and all should be accessed by $PATH not by definite paths, as described in man execvp(). Then, they are all peers and all run equally well, and the caller need not worry about what they were written in.

Python may want some environment setup that, if callers do not provide, you need to address. Having a simple shell test like if [ "$ZZPROFILED" =1 ] can tell you to run a profile and get things tuned up.