I have read multiple posts and many articles detailing that scipts in a cron job need to keep the environment variables necessary to run inside the script itself due to the
What you've said makes no sense.
You say shell_env = sys.path. sys.path is a list of folders for python to look for modules, not an environment variable mapping!
You then use that in subprocess.call. Perhaps you meant to write env=my_env.
That's the next problem. First, PATH should be a list of folder separated by ':'. You just tack shell_path onto the last folder.
Finally, python uses PYTHONPATH as a list to locate python modules (which seems to be what problem you're having.)