Python scripts with "executable" permissions (or any executable script files on unix, linux, mac, etc) can use a shebang line. It's important to understand that Python does not read any lines marked as a comment (prefixed with a "#" sign) and that includes a shebang line. Actually, your OS reads the shebang line and sends the script off to the appropriate interpreter as instructed by the shebang line. lots of scripts do this: "sh" scripts "bash" scripts "python" scripts, all of which are interpreted.
So, only the executable Python files that you want to run as command/programs, including package files coded with: if __name__ == '__main__'
somewhere in the script, which are also intended to be executed directly by a user.
(the objective of the shebang line it to simplify the scripts execution. Rather than forcing the user to run the program by typing the interpreter to use, and then typing the script file as an argument. The user can just type in the command only, as if it were any other command, or possible just click it on the desktop. The OS will then read the script first, find the shebang line, then call the interpreter found in the shebang)