Who put Python in the Windows 10 May 2019 Update?

Steve Dower

Steve

Today the Windows team announced the May 2019 Update for Windows 10. In this post we’re going to look at what we, Microsoft’s Python team, have done to make Python easier to install on Windows by helping the community publish to the Microsoft Store and, in collaboration with Windows, adding a default “python.exe” command to help find it. You may have already heard about these on the Python Bytes podcast, at PyCon US, or through Twitter.

As software moves from the PC to the cloud, the browser, and the Internet of Things, development workflows are changing. While Visual Studio remains a great starting point for any workload on Windows, many developers now prefer to acquire tools individually and on-demand.

For other operating systems, the platform-endorsed package manager is the traditional place to find individual tools that have been customized, reviewed, and tested for your system. On Windows we are exploring ways to provide a similar experience for developers without impacting non-developer users or infringing publishers’ ability to manage their own releases. The Windows Subsystem for Linux is one approach, offering developers consistency between their build and deployment environments. But there are other developer tools that also matter.

One such tool is Python. Microsoft has been involved with the Python community for over twelve years, and currently employ four of the key contributors to the language and primary runtime. The growth of Python has been incredible, as it finds homes among data scientists, web developers, system administrators, and students, and roughly half of this work is already happening on Windows. And yet, Python developers on Windows find themselves facing more friction than on other platforms.

Installing Python on Windows

The Windows command prompt showing an error when Python cannot be found It’s been widely known for many years that Windows is the only mainstream operating system that does not include a Python interpreter out of the box. For many users who are never going to need it, this helps reduce the size and improve the security of the operating system. But for those of us who do need it, Python’s absence has been keenly felt.

Once you discover that you need to get Python, you are quickly faced with many choices. Will you download an installer from python.org? Or perhaps a distribution such as Anaconda? The Visual Studio installer is also an option. And which version? How will you access it after it’s been installed? You quickly find more answers than you need, and depending on your situation, any of them might be correct.

We spent time figuring out why someone would hit the error above and what help they need. If you’re already a Python expert with complex needs, you probably know how to install and use it. It’s much more likely that someone will hit this problem the first time they are trying to use Python. Many of the teachers we spoke to confirmed this hypothesis – students encounter this far more often than experienced developers.

So we made things easier.

The header of the Python 3.7 page in the Microsoft Store

First, we helped the community release their distribution of Python to the Microsoft Store. This version of Python is fully maintained by the community, installs easily on Windows 10, and automatically makes common commands such as python, pip and idle available (as well as equivalents with version numbers python3 and python3.7, for all the commands, just like on Linux).

The Windows command prompt showing that "python3.7" now launches Python and "pip3" launches pip

Finally, with the May 2019 Windows Update, we are completing the picture. While Python continues to remain completely independent from the operating system, every install of Windows will include python and python3 commands that take you directly to the Python store page. We believe that the Microsoft Store package is perfect for users starting out with Python, and given our experience with and participation in the Python community we are pleased to endorse it as the default choice.

Scott Hanselman on Twitter: "WHOA. I'm on a new copy of Windows and I typed Python - on a machine where I don't have it - and it launched the Windows Store into an official distribution I can install in a click. WHEN did this happen. I love this." We hope everyone will be as excited as Scott Hanselman was when he discovered it. Over time, we plan to extend similar integration to other developer tools and reduce the getting started friction. We’d love to hear your thoughts, and suggestions, so feel free to post comments here or use the Windows Feedback app.

 

Steve Dower
Steve Dower

Software Engineer, Python

Follow Steve   

25 Comments
Avatar
Andrew Lucius 2019-05-21 13:54:42
Microsoft R Open + RStudio Desktop would be great additions to the store.
Avatar
Niko Strijbol 2019-05-21 16:31:19
I know this is probably too much work for one release of Windows, so it's a nice interim solution, but wouldn't it make more sense to create a decent official package manager for Windows instead of having to include shims for who knows how many programs?
Avatar
Jackson, Dan 2019-05-22 02:32:07
What about LTSC versions of Windows that don't have the Microsoft Store? Should we just continue to use python.org or Visual Studio installers, or will there be a way to sideload this official version onto 1809 LTSC (for example)?
Avatar
Shawn O. Eary 2019-05-23 05:12:02
I know I'm a bit odd, but I would personally rather see the Glasgow Haskell Compiler and Interpreter installed into MS Windows by default than something named after an ugly snake.  I've used Python before and honestly I don't care for scripting languages that lend themselves to tons of runtime errors.  I tend to prefer more strict languages like F# and now Haskell for "automation" tasks.  While it's disappointing that F# seems to have "failed to thrive", I would be interested if Microsoft reattempted to create a *pure* Haskell.NET that wasn't polluted by Microsoft's attempt to appeal to the masses. DISCLAIMER: My comment does not represent the oppinions of any of my current or former employers.
Avatar
Vitali Supruniuk 2019-05-30 10:43:52
So how do we fix existing installations now? When I run python via command line it always opens Microsoft Store, this new feature affected hundreds of our vms.
Avatar
Lennart Borgman 2019-06-06 10:22:06
Could you please tell the version number of Windows 10 where this way to setup python is included? (I can't see the "python.exe" in my path. And I have just checked Windows Update again. I have the latest update of Windows 10, the latest I can get right now, at least.)
Avatar
Mayeul Cantan 2019-06-07 13:45:01
That's an interesting and welcome development, I am curious to see it unfold. But please, do tell me that "Python" and "pip" launch Python3 and pip3 by default, respectively. Python2 is EOL at the end of the year, so if you really need to include it, that's the one to postfix with a "2" ;) Archlinux does it right, in my opinion :)
Avatar
Chris 2019-06-08 12:04:35
I wonder about how visual studio copes with installing and developing for python and it's interoperabilities with code in java, powershell, etc...
Avatar
Jan Gazda 2019-06-10 00:43:29
Hi, this is exciting news!But I suspect something is missing (or am I missing something?) "every install of Windows will include python and python3 commands that take you directly to the Python store page." I just did fresh installation of win10 with May update and executables are not in PATH or missing entirely :(
Avatar
Morten242 . 2019-06-15 03:41:17
While I appreciate it a lot I'm seeing some problems actually using this thing from programs like cmake. Having the shim in path isn't enough for it to be actually picked up and used, I need to manually specify the path to the actual installation. Just picking the shim ends up with an error about the system not being allowed to access the file.
Avatar
anonymous 2019-06-17 06:19:26

This comment has been deleted.

Avatar
Brian W 2019-06-17 06:20:22
Great work!  Any chance of getting Ansible working natively without WSL?  Microsoft makes VSCode and the Ansible extension, so I hope this is on the roadmap.