On Tue, Feb 2, 2016 at 10:15 PM, Steve Dower firstname.lastname@example.org wrote:
I was throwing around some ideas with colleagues about how we detect Python installations on Windows from within Visual Studio, and it came up that there are many Python distros that install into different locations but write the same registry entries. (I knew about this, of course, but this time I decided to do something.)
So here is a rough proposal to standardise the registry keys that can be set on Windows in a way that (a) lets other installers besides the official ones have equal footing, (b) provides consistent search and resolution semantics for tools, and (c) includes slightly more rich metadata (such as display names and URLs). Presented in PEP-like form here, but if feedback suggests just putting it in the docs I'm okay with that too. It is fully backwards compatible with official releases of Python (at least back to 2.5, possibly further) and does not require modifications to Python or the official installer - it is purely codifying a superset of what we already do.
Any and all feedback welcomed, especially from the owners of other distros, Python implementations or tools on the list.
Just wanted to quickly point out another use of the WIndows registry in Python: WindowsRegistryFinder . This is an import "meta-path" finder that locates modules declared (*not* defined) in the registry. I'm not familiar with the Windows registry nor do I know if anyone is using this finder. That said, ISTM the finder's use of the registry does not face quite the same challenges you've described in the proposal. I expect Martin von Löwis could explain more as he was involved with adding the finder.
Just wanted to throw that out there, particularly if there's a chance of the finder's registry keys conflicting in some way.