[Distutils] .exe for script in Windows doesn't work

cool-RR cool-rr at cool-rr.com
Thu Jan 13 08:54:47 CET 2011

On Thu, Jan 13, 2011 at 2:25 AM, P.J. Eby <pje at telecommunity.com> wrote:

> At 09:31 PM 1/12/2011 +0200, cool-RR wrote:
>> Hi guys,
>> I made a release of my project today, and now I see there's something
>> wrong with it.
>> When you install it on Windows using the windows binaries (that I made
>> with `bdist_msi` under Python 2.7), the .exe scripts in the "Scripts" folder
>> don't work. When you launch them, nothing happens. You can launch the
>> associated *-script.pyw files and those *do* work.
>> I investigated a little and possibly I figured it out. The shebang line
>> says "#!c:\Python27\pythonw.exe". This is the interpreter with which I
>> *created* the binaries. But why should it be the interpreter with which the
>> *user* works? The user could have "c:\Python26\pythonw.exe" as his
>> interpreter or "c:\Programs\Python25\pythonw.exe" or "g:\Pypy\pypy.exe" as
>> his interpreter.
>> I tried editing the shebang line with notepad, and this caused the exe
>> files to start working! (Of course this is not a real solution, I can't ask
>> my users to do that.)
>> Is this a bug in distribute?
> It's a limitation of setuptools+bdist_msi - when you build a bdist_wininst,
> setuptools writes a generic #! line, but when you build a bdist_msi, it
> doesn't realize you're building a distribution.

So which project exactly is responsible for this limitation? Distribute?

Do you think there's a good reason not to have the MSI put the path to
python.exe itself into the shebang upon installation?

>  I'd appreciate if you can reply soon since I already started the release
>> process and I don't want to confuse users.
> As a quick workaround, you could try setting sys.executable to
> 'pythonw.exe' in your setup.py, *before* setuptools is imported, then build
> the .msi.

I'd be reluctant to do that, since many users don't have the Python folder
on their PATH, so it won't work for them at all.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20110113/6982a38d/attachment-0001.html>

More information about the Distutils-SIG mailing list