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

cool-RR cool-rr at cool-rr.com
Thu Jan 13 22:35:20 CET 2011

On Thu, Jan 13, 2011 at 11:26 PM, "Martin v. Löwis" <martin at v.loewis.de>wrote:

> > Who is maintaining bdist_msi?
> I am. Unfortunately, I don't even understand the problem you are talking
> about, let alone being able to do anything about it.
> Regards,
> Martin

I'll explain. (Please correct me if I'm making any mistakes here.)

When you install a Python package in Windows, an .exe file is generated for
every script that your package defines. This .exe file sits alongside the
.py scripts in the PythonXX\Scripts folder. The .exe file launches the
Python interpreter with the Python script. The .exe file needs to know where
your Python interpreter is, and it uses the shebang line on the script file
to do it, like this: "#!c:\Python27\pythonw.exe"

Problem is, that instead of specifying the interpreter of the system on
which you're installing, it's using the interpreter of the system which
generated the bdist_msi. So since I generated MSI with Python 2.7, the
shebang line showed a path to a Python 2.7 installation. This is a problem
since the user might have Python 2.6 installed, or he can have Python
installed in a non-default path, etc.

What seems right to me is that the MSI installer will figure out where the
Python interpreter is on the end-user's system and then use that in the
shebang line.

What do you think?

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

More information about the Distutils-SIG mailing list