Python – Running python script from terminal without .py extension

command lineexecutablefilenamespython

I want to call a python script script.py from the terminal by simply typing script. Is this possible? If so, how?

I know I can avoid typing python script.py by adding #!/usr/bin/env python to the top of the script, but I still have to add the suffix .py in order to run the script.

Best Answer

Unix/Linux file systems do not rely on extensions the way windows does. You should not need the .py at the end of a file to run it.

You can run the file by either calling it with the interpreter:

python ScriptFile

Or by marking it executable and defining the interpreter on the first line (e.g. #!/usr/bin/python).

If you are unable to execute the file with:

/Path/to/ScriptFile

check the permissions with

ls -l ScriptFile

You may need to add the executable flag and chmod it so it will execute for you.

If you are using custom scripts regularly you may want to make sure the directory you store them is added to the PATH environment variable.

Related Question