[Python-Dev] wininst-*.exe files in Lib/distutils/command

Petr Viktorin encukou at gmail.com
Thu Oct 18 12:26:34 EDT 2018

On 10/18/18 4:40 PM, Zachary Ware wrote:
> On Thu, Oct 18, 2018 at 9:09 AM VanL <van.lindberg at gmail.com> wrote:
>> Hi all,
>> I am looking into an issue associated with the wininst-*.exe files in the distutils/command subdirectory. It looks like these are the executable stubs used to create self-extracting zips for installation - but I am not 100% sure. It also looks like they include the calls to standard Windows functions to display the installer window.
>> I have a couple questions I need help with:
>> 1) Am I correct about the function, and if not, what are they?
> You are correct.  IIUC, they are checked in to allow creating those
> installers from non-Windows platforms.

Is that the only reason for them?
At least on Linux, bdist_wininst does not work since at least Python 
3.2, as it tries to use a Windows-only encoding internally.

If they're only there for non-Windows platforms, they're useless.

>> 2) Where did these come from, and where is their source code?
> Source can be found here:
> https://github.com/python/cpython/tree/master/PC/bdist_wininst
> The individual checked-in .exe files were each originally built by
> whoever updated the Windows toolchain to a new version of MSVC
> (Christian Heimes, Brian Curtin, or Steve Dower; though the oldest
> ones were added by Thomas Heller, presumably using whatever the
> current toolchain(s) was (were) at the time).  A few of them have been
> rebuilt after bug fixes in the source since they were added, mostly by
> the same people, though I also see Mark Hammond and Raymond Hettinger
> in the history (and Georg Brandl via svnmerge).  I notice that there
> are a few very minor code cleanups (the three latest commits here
> https://github.com/python/cpython/commits/master/PC/bdist_wininst/install.c)
> that have not made it into a rebuilt exe yet.
> FTR, we really ought to remove all but the 14.0 version from the
> master branch.  We don't support building Python with any toolchain
> older than 14.0 anymore, and the older toolchains are nigh impossible
> to find anymore anyway.

More information about the Python-Dev mailing list