[Python-Dev] Re: [Distutils] Questions about distutils strategy

Tim Peters tim_one@email.msn.com
Thu, 9 Dec 1999 01:38:54 -0500


[Gordon]
>> Much as I love Mark's stuff (and hesitate to criticize crazy
>> Aussies), I wish there weren't so much special casing here for
>> Windows.

[Guido]
> It's not Mark's fault, it's Microsoft's fault.  If you don't do
> things the way MS wants you to, experienced Windows users will
> gripe, misunderstand what you do, etc.

Something just occurred to me:  MS's guidelines aren't arbitrary, they
actually have very good reasons.  In the case of putting all an app's
crucial info in the Registry, it's the only way to allow a site
administrator to set policy and site options remotely (an admin can fiddle
other machines' registries remotely).  This works very well indeed when
there's only "one copy" of an app on a machine (or at most one copy "per
user").

What just occurred to me is that JimA is concerned with *not* letting any
info from a previously-installed Python affect the app he's installing.
Similarly, Gordon's Win32 "standalone installer" modifies python.exe and
pythonw.exe to use a PYTHONPATH he forces, leaving the registry out of it.
Similarly, the woes I've had in trying to sell Python as a general Win32
scripting tool at work mostly boil down to that there's no effortless way to
do it that doesn't risk picking up info from-- or forcing info
onto --pre-existing or future distinct Python installations (in contrast,
Perl "just works" in this respect).

IOW, the three of us find getting path info out of the registry intolerable
because we are in fact trying to do the opposite of what the registry
mechanism was *designed* for:  we want perfect isolation, not perfect
sharing.

This has come up on Python-Help a few times too, in the guise of someone
installing a product that in turn installs an older version of Python, which
in turn confuses another product that relies on features in a newer version
of Python.

So while the traditional Windows .ini file (like Unix this-or-that.rc file)
model was replaced by the registry for excellent reasons, those reasons
don't apply to the way we're using Python!  The .ini file model was exactly
right for what most of us seem to want to do, and the registry model is
exactly wrong.

just-thought-i'd-cheer-you-up<wink>-ly y'rs  - tim