[svn r56749] porting fixes from dist to trunk

--HG--
branch : trunk
This commit is contained in:
hpk 2008-07-23 19:40:04 +02:00
parent 7682e0801a
commit 53c3f58a33
1 changed files with 35 additions and 1 deletions

View File

@ -97,14 +97,48 @@ def addbindir2path():
# Add py/bin to PATH environment variable
bindir = os.path.join(sysconfig.get_python_lib(), "py", "bin", "win32")
# check for the user path
ureg = _winreg.ConnectRegistry(None, _winreg.HKEY_CURRENT_USER)
ukey = r"Environment"
# not every user has his own path on windows
try:
upath = get_registry_value(ureg, ukey, "PATH")
except WindowsError:
upath=""
# if bindir allready in userpath -> do nothing
if bindir in upath:
return
reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
key = r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
path = get_registry_value(reg, key, "Path")
# if bindir allready in systempath -> do nothing
if bindir in path:
return
path += ";" + bindir
print "Setting PATH to:", path
set_registry_value(reg, key, "Path", path)
pathset=False
try:
set_registry_value(reg, key, "PATH", path)
pathset=True
except WindowsError:
print "cannot set systempath, falling back to userpath"
pass
if not pathset:
try:
if len(upath)>0: #if no user path present
upath += ";"
upath+=bindir
set_registry_value(ureg, ukey, "Path", upath)
pathset=True
except WindowsError:
print "cannot set userpath, please add %s to your path" % (bindir,)
return
#print "Current PATH is:", get_registry_value(reg, key, "Path")
# Propagate changes throughout the system