| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- """Add Python to the search path on Windows
- This is a simple script to add Python to the Windows search path. It
- modifies the current user (HKCU) tree of the registry.
- Copyright (c) 2008 by Christian Heimes <christian@cheimes.de>
- Licensed to PSF under a Contributor Agreement.
- """
- import sys
- import site
- import os
- import winreg
- HKCU = winreg.HKEY_CURRENT_USER
- ENV = "Environment"
- PATH = "PATH"
- DEFAULT = "%PATH%"
- def modify():
- pythonpath = os.path.dirname(os.path.normpath(sys.executable))
- scripts = os.path.join(pythonpath, "Scripts")
- appdata = os.environ["APPDATA"]
- if hasattr(site, "USER_SITE"):
- usersite = site.USER_SITE.replace(appdata, "%APPDATA%")
- userpath = os.path.dirname(usersite)
- userscripts = os.path.join(userpath, "Scripts")
- else:
- userscripts = None
- with winreg.CreateKey(HKCU, ENV) as key:
- try:
- envpath = winreg.QueryValueEx(key, PATH)[0]
- except OSError:
- envpath = DEFAULT
- paths = [envpath]
- for path in (pythonpath, scripts, userscripts):
- if path and path not in envpath and os.path.isdir(path):
- paths.append(path)
- envpath = os.pathsep.join(paths)
- winreg.SetValueEx(key, PATH, 0, winreg.REG_EXPAND_SZ, envpath)
- return paths, envpath
- def main():
- paths, envpath = modify()
- if len(paths) > 1:
- print("Path(s) added:")
- print('\n'.join(paths[1:]))
- else:
- print("No path was added")
- print("\nPATH is now:\n%s\n" % envpath)
- print("Expanded:")
- print(winreg.ExpandEnvironmentStrings(envpath))
- if __name__ == '__main__':
- main()
|