Python.org distributes binary installers for Python that are built with MSVS.
It is possible to install a version of MSVS that will build Python extensions written in C.
So – why do we need mingwpy?
There is a free and relatively small MSVS version 9.0 download for compiling Python 2.7 extensions at http://aka.ms/vcpython27. Quoting from https://mail.python.org/pipermail/distutils-sig/2014-September/024885.html :
[...] VC9 is no longer supported by Microsoft. This means there won’t be any improvements or bug fixes coming, and there’s no official support offered.
Compiling extensions for Python 3.5 needs MSVS version 14 (VS 2015). The “community edition” is a free download but takes a whopping 11GB of disk space and takes a long time to install.
MSVS does not have a Fortran compiler. This means that anyone compiling scipy or another Python package with Fortran code will need a compiler other than (or in addition to) MSVS.
All of the competitive open-source linear algebra libraries (e.g. OpenBLAS) contain crucial chunks of assembly language code, and this code is written using gcc conventions that aren’t supported by MSVS.
Open source works by spreading the work of maintaining and distributing packages across many people. If it is hard to install the compilers then fewer people will be able to test and fix bugs, meaning slower development and more work in releasing packages.
Scientific programmers overwhelmingly work on Unix, and are used to gcc c / gfortran or clang. Few scientific programmers know MSVC. Using MSVC instead of gcc / clang makes extra maintenance work and reduces the pool of developers who can contribute.
Open-source programmers prefer to work with open tools. Many of us have switched to Python from languages like MATLAB for this reason. It is uncomfortable to have to use closed-source tools to build open-source software.