[Distutils] easy_install doesn't recognize valid distutils Windows installers

Phillip J. Eby pje at telecommunity.com
Thu Sep 21 02:00:47 CEST 2006

At 02:59 PM 9/19/2006 -0400, Matt Good wrote:
>On Windows "easy_install trac" fails with the error:
>"trac-0.10b1.win32.exe is not a valid distutils Windows .exe"
>The problem is with easy_install locating the config information
>embedded in the file.  The following patch works with the Trac
>installer, but I don't know if it will break support for other
>Index: setuptools/command/easy_install.py
>--- setuptools/command/easy_install.py  (revision 51920)
>+++ setuptools/command/easy_install.py  (working copy)
>@@ -1249,7 +1249,7 @@
>          if tag not in (0x1234567A, 0x1234567B):
>              return None     # not a valid tag
>-        f.seek(prepended-(12+cfglen+bmlen))
>+        f.seek(prepended-(12+cfglen))

I can't see how bdist_wininst for Python 2.3 or better can generate a file 
that's missing the 'bmlen' value or has garbage in it.  bmlen corresponds 
to the 'bitmaplen' value generated by the bdist_wininst command, and it 
should be a zero if there was no custom bitmap added.

In other words, the .exe you're having problems with doesn't seem like it 
could've been produced by an unmodified distutils bdist_wininst command, as 
I've checked the SVN logs for that module and it's been 5 years since 
bdist_wininst had the 'bitmaplen' value added.

More information about the Distutils-SIG mailing list