Registry entries set up by the Windows installer
skippy.hammond at gmail.com
Thu Feb 2 01:28:12 CET 2012
On 2/02/2012 2:09 AM, Paul Moore wrote:
> I'm trying to get information on what registry entries are set up by
> the Python Windows installer, and what variations exist. I don't know
> enough about MSI to easily read the source, so I'm hoping someone who
> knows can help :-)
> As far as I can see on my PC, the installer puts entries
> with various bits underneath. I think I've seen indications that
> sometimes these are in HKCU, presumably for a "per user" install? If I
> manually hack around in the registry, and have both HKLM and HKCU,
> which one will Python use?
For setting PYTHONPATH it uses both - HKEY_CURRENT_USER is added before
HKEY_LOCAL_MACHINE. I can't recall which one distutils generated
(bdist_wininst) installers will use - it may even offer the choice.
> Furthermore, more of a Windows question than Python, but there's a
> similar question with regard to the .py and .pyw file associations -
> they can be in HKLM\Software\Classes or HKCU\Software\Classes. Which
> takes precedence?
No idea I'm afraid, but I'd expect it to use HKCU
> I assume that the installer writes to HKLM for all
> users and HKCU for per-user installs.
Yep, I think that is correct.
> Is there anything else I've missed?
I'm also not sure which one the pylauncher project will prefer, which
may become relevant should that get rolled into Python itself.
> The reason I ask, is that I'm starting to work with virtualenv, and I
> want to see what would be involved in (re-)setting the registry
> entries to match the currently active virtualenv. virtualenvwrapper-
> powershell seems to only deal with HKCU (which is a big plus on
> Windows 7, as it avoids endless elevation requests :-)) but that
> doesn't work completely cleanly with my all-users install. (Note: I'm
> not entirely sure that changing global settings like this to patch a
> per-console virtualenv is a good idea, but I'd like to know how hard
> it is before dismissing it...)
Out of interest, what is the reason forcing you to look at that -
bdist_wininst installers? FWIW, my encounters with virtualenv haven't
forced me to hack the registry - I just install bdist_wininst packages
into the "parent" Python which isn't ideal but works fine for me. This
was a year or so ago, so the world might have changed since then.
More information about the Python-list