diff options
author | Brian Curtin <brian@python.org> | 2014-05-10 17:52:59 (GMT) |
---|---|---|
committer | Brian Curtin <brian@python.org> | 2014-05-10 17:52:59 (GMT) |
commit | d67c0b88efc34965b499f277abcaa52f2a15f916 (patch) | |
tree | 895ced857d76eec5e7c4fee04acd7d26c198e9a6 | |
parent | b0acc1b0a35905fa8dc3d3d10581602b5129c87a (diff) | |
download | cpython-d67c0b88efc34965b499f277abcaa52f2a15f916.zip cpython-d67c0b88efc34965b499f277abcaa52f2a15f916.tar.gz cpython-d67c0b88efc34965b499f277abcaa52f2a15f916.tar.bz2 |
Backport 4e9f1017355f from #3561.
This brings the option to install Python on the Windows Path.
Committed per Benjamin Peterson's approval on python-dev.
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Tools/msi/msi.py | 22 |
2 files changed, 23 insertions, 3 deletions
@@ -289,6 +289,10 @@ Library Tools/Demos ----------- +- Issue #3561: The Windows installer now has an option, off by default, for + placing the Python installation into the system "Path" environment variable. + This was backported from Python 3.3. + - Add support for ``yield from`` to 2to3. - Add support for the PEP 465 matrix multiplication operator to 2to3. diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py index 2f0d963..938d942 100644 --- a/Tools/msi/msi.py +++ b/Tools/msi/msi.py @@ -445,6 +445,10 @@ def add_ui(db): ("SetDLLDirToTarget", 'DLLDIR=""', 751), ]) + # Prepend TARGETDIR to the system path, and remove it on uninstall. + add_data(db, "Environment", + [("PathAddition", "=-*Path", "[TARGETDIR];[~]", "REGISTRY.path")]) + # Execute Sequences add_data(db, "InstallExecuteSequence", [("InitialTargetDir", 'TARGETDIR=""', 750), @@ -668,11 +672,11 @@ def add_ui(db): c=features.xbutton("Advanced", "Advanced", None, 0.30) c.event("SpawnDialog", "AdvancedDlg") - c=features.text("ItemDescription", 140, 180, 210, 30, 3, + c=features.text("ItemDescription", 140, 180, 210, 40, 3, "Multiline description of the currently selected item.") c.mapping("SelectionDescription","Text") - c=features.text("ItemSize", 140, 210, 210, 45, 3, + c=features.text("ItemSize", 140, 225, 210, 33, 3, "The size of the currently selected item.") c.mapping("SelectionSize", "Text") @@ -826,7 +830,7 @@ def add_features(db): # (i.e. additional Python libraries) need to follow the parent feature. # Features that have no advertisement trigger (e.g. the test suite) # must not support advertisement - global default_feature, tcltk, htmlfiles, tools, testsuite, ext_feature, private_crt + global default_feature, tcltk, htmlfiles, tools, testsuite, ext_feature, private_crt, prepend_path default_feature = Feature(db, "DefaultFeature", "Python", "Python Interpreter and Libraries", 1, directory = "TARGETDIR") @@ -851,6 +855,15 @@ def add_features(db): testsuite = Feature(db, "Testsuite", "Test suite", "Python test suite (Lib/test/)", 11, parent = default_feature, attributes=2|8) + # prepend_path is an additional feature which is to be off by default. + # Since the default level for the above features is 1, this needs to be + # at least level higher. + prepend_path = Feature(db, "PrependPath", "Add python.exe to Path", + "Prepend [TARGETDIR] to the system Path variable. " + "This allows you to type 'python' into a command " + "prompt without needing the full path.", 13, + parent = default_feature, attributes=2|8, + level=2) def extract_msvcr90(): # Find the redistributable files @@ -1168,6 +1181,8 @@ def add_registry(db): "InstallPath"), ("REGISTRY.doc", msilib.gen_uuid(), "TARGETDIR", registry_component, None, "Documentation"), + ("REGISTRY.path", msilib.gen_uuid(), "TARGETDIR", registry_component, None, + None), ("REGISTRY.def", msilib.gen_uuid(), "TARGETDIR", registry_component, None, None)] + tcldata) # See "FeatureComponents Table". @@ -1184,6 +1199,7 @@ def add_registry(db): add_data(db, "FeatureComponents", [(default_feature.id, "REGISTRY"), (htmlfiles.id, "REGISTRY.doc"), + (prepend_path.id, "REGISTRY.path"), (ext_feature.id, "REGISTRY.def")] + tcldata ) |