I am trying to use Crontab to schedule a shell script that runs the main python script. I had tried putting shebang #!/usr/local/bin/python in the first line of python script but it errorred out with "cannot importing certain packages". However, if I call the python script in the shell script by /usr/local/bin/python  python_script.py, it worked. Any ideas why I can't use the shebang #!/usr/local/bin/python directly in python instead of the way calling in the shell as mentioned above (it's not elegant)?
This is very likely an issue with your environment variables. Most likely you've got different entries in your PATH or PYTHONPATH variables.
To see the difference, you could have your script be a bash script and have it echo the output of env and compare it to your shell's env.
Python Shebang Doesn't Work #!/usr/local/bin/python