Making Python scripts run on Windows without specifying ".py" extension

19,866

Solution 1

Add .PY to PATHEXT as noted before

Then do:

assoc .py=Python.File
ftype Python.File=c:\Python27\python.exe "%1" %*

Adding python to the path isn't necessary to execute the script in a command prompt or double clicking in Explorer, only if you want to start an interactive python session or running the script with python yourscript.py

See http://docs.python.org/2/using/windows.html for more details.

Solution 2

Modify the PATHEXT variable to include Python scripts. For example, here's mine:

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY

You can do this every time you open a command console, or just modify your user global environment variables so that every instance of cmd.exe will include it.

Solution 3

I was able to get it done using this application http://defaultprogramseditor.com/

Share:
19,866

Related videos on Youtube

dublintech
Author by

dublintech

Updated on June 19, 2022

Comments

  • dublintech
    dublintech almost 2 years

    I want to able to open a command prompt at the folder which contains a python script and just type in the script name without the .py and watch it run.

    Following the various tips on google to do this, I do:

    1. Add the python.exe to my path
    2. Add .py to PATHEXT
    3. Try to open the .py file in windows explored. When prompted with: What program do you want to open this? I navigate to my python.exe

    What should happen is the python.exe should be added to the 'Open With' pop up, but it is not? I re try with the python.exe off my path. Same problem.

    Note every time I set a path it is in the control panel. Version of python is 2.7. And to make things stranger, I can associate .py programs with pythonw - but this is no use, as I want the console.

    Any help appreciated.

    • not2qubit
      not2qubit about 2 years
      What exactly is happening behind the scenes when this is done? One should be able to do this from Powershell command line...
  • martineau
    martineau almost 10 years
    If you have more than one version of Python installed (like 2.7.x and 3.4), you might want to use ftype Python.File="C:\Windows\py.exe" "%1" %*.
  • Jason Aller
    Jason Aller about 6 years
    What advantage does this offer over the existing answers? It appears that a separate .cmd file would need to be created for each script you want to launch in this manner.
  • musicman
    musicman about 4 years
    python is so much fun with that