29

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.

Piotr Dobrogost
  • 41,292
  • 40
  • 236
  • 366
dublintech
  • 16,815
  • 29
  • 84
  • 115
  • What exactly is happening behind the scenes when this is done? One should be able to do this from *Powershell* command line... – not2qubit Apr 01 '22 at 20:28

4 Answers4

43

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.

Kim Gräsman
  • 7,438
  • 1
  • 28
  • 41
PabloG
  • 25,761
  • 10
  • 46
  • 59
  • 3
    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" %*`. – martineau May 30 '14 at 17:10
13

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.

kprobst
  • 16,165
  • 5
  • 32
  • 53
1

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

dublintech
  • 16,815
  • 29
  • 84
  • 115
0

I tried removing .py extension from file.py name and then ran command python file python can understand the code without any extension for single file, but if you use modules then you need to use .py extension. Else you can add .py to path text in enviornment variables and run

assoc .py=Python.File

ftype Python.File=c:\path to \python.exe "%1" %*