Search code examples
pythonwindowspathcmd

Set up Python on Windows to not type "python" in cmd


How do I have to configure so that I don't have to type python script.py but simply script.py in CMD on Windows?

I added my python directory to %PATH% that contains python.exe but still scripts are not run correctly.

I tried it with django-admin.py Running django-admin.py startproject mysite gives me Type 'django-admin.py help <subcommand>' for help on a specific subcommand. Using python in front of it processes the command correctly.

What's the problem here?


Solution

  • C:\> assoc .py=Python
    C:\> ftype Python="C:\python27\python.exe %1 %*"
    

    Or whatever the relevant path is - you can also set command line args using ftype.


    In order to make a command recognized without having to give the suffix (.py), similar to how it works for .exe files, add .py to the semi-colon separated list of the (global) PATHEXT variable.

    ETA 2017-07-27

    Seems like this is still getting eyeballs, wanted to elevate a useful comment for Win10 users (from @shadowrunner):

    For me to get it work under Win10 the actual command was (note the placement of the quotes):

    C:\> ftype Python="c:\Anaconda2\python.exe" "%1" %*
    

    ETA 2019-02-01

    Talk about evergreen!

    First of all, if you're newly installing Python, I highly recommend reviewing the answer by @NunoAndré .

    Secondly, to clarify something from a recent comment, please note: you must do both parts (assoc and ftype), or use a pre-existing association label in the ftype command.

    By default, at least for Python 3.7 under Windows 8.1, the association for .py is Python.File, so performing the ftype command I wrote above will not work correctly unless the association is first changed. Or you can just use ftype and give the default association instead. Up to you.