[Python-3000] [Python-Dev] 2.6.1 and 3.0
"Martin v. Löwis"
martin at v.loewis.de
Thu Nov 27 16:24:38 CET 2008
Giovanni Bajo wrote:
> On gio, 2008-11-27 at 00:29 +0100, "Martin v. Löwis" wrote:
>>> So, deducing from your reply, this "merge module" is a thing that allows
>>> to install the CRT (and other shared components)?
>> Correct. More generally, a merge module is a something like an MSI
>> library (.a). It includes a set of files and snippets of an installation
>> procedure for them.
> OK. One question: why CRT doesn't get installed as regular files near to
> the python executable? That's how I usually ship it, but maybe Python
> has some special need.
When installing "for all users", pythonxy.dll goes into system32. This,
in turn, requires the CRT to be installed globally (which meant into
system32 for VS6 and VS7.1, but means using SxS for VS 2008). It's
necessary to install it into system32 so that PythonCOM can find it
(alternatively, we could now also making it an SxS assembly).
VS2008 adds another twist: assembly manifests. As a consequence of this
technology, if Python 2.6 is installed "just for me" on Windows Vista
(i.e. the CRT is next to the executable), it just won't work, because
the extension modules (.pyd) can't find the CRT.
> I proposed an alternatives because I read you saying: "The tricky part
> really is when it breaks (which it does more often than
> not), in which case you need to understand msi.py, for which you need to
> understand MSI". Which means that maybe everybody *has tools* to build
> an installer today, but only a few people have the required knowledge to
> really do releases on Windows.
> So I believe that switching to an alternative that doesn't require full
> understanding of MSI and msi.py would probably low the barrier and allow
> more people to help you out.
I remain skeptical. You replace the need to learn MSI with the need to
learn this tool, and not only to work around the limitations of MSI, but
also around the limitations of the tool you have chosen.
More information about the Python-3000