Created
July 19, 2013 22:25
-
-
Save embray/6042780 to your computer and use it in GitHub Desktop.
A script to register Python under HKEY_CURRENT_USER in addition to HKEY_LOCAL_MACHINE
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# script to register Python 2.0 or later for use with win32all | |
# and other extensions that require Python registry settings | |
# | |
# written by Joakim Loew for Secret Labs AB / PythonWare | |
# | |
# source: | |
# http://www.pythonware.com/products/works/articles/regpy20.htm | |
# | |
# modified by Valentine Gogichashvili as described in http://www.mail-archive.com/[email protected]/msg10512.html | |
# modified for Python 3 support by Erik Bray <[email protected]> | |
from __future__ import print_function | |
import sys | |
try: | |
from winreg import * | |
except ImportError: | |
from _winreg import * | |
# tweak as necessary | |
version = sys.version[:3] | |
installpath = sys.prefix | |
regpath = "SOFTWARE\\Python\\Pythoncore\\{0}\\".format(version) | |
installkey = "InstallPath" | |
pythonkey = "PythonPath" | |
pythonpath = "{0};{1}\\Lib\\;{2}\\DLLs\\".format( | |
installpath, installpath, installpath) | |
def RegisterPy(): | |
try: | |
reg = OpenKey(HKEY_CURRENT_USER, regpath) | |
except EnvironmentError as e: | |
try: | |
reg = CreateKey(HKEY_CURRENT_USER, regpath) | |
SetValue(reg, installkey, REG_SZ, installpath) | |
SetValue(reg, pythonkey, REG_SZ, pythonpath) | |
CloseKey(reg) | |
except: | |
print("*** Unable to register!") | |
return | |
print("--- Python", version, "is now registered!") | |
return | |
if (QueryValue(reg, installkey) == installpath and | |
QueryValue(reg, pythonkey) == pythonpath): | |
CloseKey(reg) | |
print("=== Python", version, "is already registered!") | |
return | |
CloseKey(reg) | |
print("*** Unable to register!") | |
print("*** You probably have another Python installation!") | |
if __name__ == "__main__": | |
RegisterPy() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
FWIW, I had to prepend 'HKLM' to regpath:
for it to run... and still, I had to to in and edit registry by hand (although, this was the correct key...)