summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2019-08-07 17:49:40 (GMT)
committerGitHub <noreply@github.com>2019-08-07 17:49:40 (GMT)
commit1fab9cbfbaf19a7bc79cef382136fcf9491e3183 (patch)
treee2bc818c366fbc21df363455a1e6b51c0676d5ae
parent362f5350eb5e2c7bfb0b0a8c306a2e128c3aee93 (diff)
downloadcpython-1fab9cbfbaf19a7bc79cef382136fcf9491e3183.zip
cpython-1fab9cbfbaf19a7bc79cef382136fcf9491e3183.tar.gz
cpython-1fab9cbfbaf19a7bc79cef382136fcf9491e3183.tar.bz2
bpo-37734: Fix use of registry values to launch Python from Microsoft Store app (GH-15146)
-rw-r--r--Misc/NEWS.d/next/Windows/2019-08-06-09-35-12.bpo-37734.EoJ9Nh.rst1
-rw-r--r--PC/layout/main.py10
-rw-r--r--PC/layout/support/appxmanifest.py14
3 files changed, 16 insertions, 9 deletions
diff --git a/Misc/NEWS.d/next/Windows/2019-08-06-09-35-12.bpo-37734.EoJ9Nh.rst b/Misc/NEWS.d/next/Windows/2019-08-06-09-35-12.bpo-37734.EoJ9Nh.rst
new file mode 100644
index 0000000..51feecb
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2019-08-06-09-35-12.bpo-37734.EoJ9Nh.rst
@@ -0,0 +1 @@
+Fix use of registry values to launch Python from Microsoft Store app.
diff --git a/PC/layout/main.py b/PC/layout/main.py
index fe934bf..07b7e6d 100644
--- a/PC/layout/main.py
+++ b/PC/layout/main.py
@@ -153,9 +153,15 @@ def get_layout(ns):
yield "libs/" + n + ".lib", lib
if ns.include_appxmanifest:
+ yield from in_build("python_uwp.exe", new_name="python{}".format(VER_DOT))
+ yield from in_build("pythonw_uwp.exe", new_name="pythonw{}".format(VER_DOT))
+ # For backwards compatibility, but we don't reference these ourselves.
yield from in_build("python_uwp.exe", new_name="python")
yield from in_build("pythonw_uwp.exe", new_name="pythonw")
else:
+ yield from in_build("python.exe", new_name="python{}".format(VER_DOT))
+ yield from in_build("pythonw.exe", new_name="pythonw{}".format(VER_DOT))
+ # For backwards compatibility, but we don't reference these ourselves.
yield from in_build("python.exe", new_name="python")
yield from in_build("pythonw.exe", new_name="pythonw")
@@ -163,9 +169,9 @@ def get_layout(ns):
if ns.include_launchers and ns.include_appxmanifest:
if ns.include_pip:
- yield from in_build("python_uwp.exe", new_name="pip")
+ yield from in_build("python_uwp.exe", new_name="pip{}".format(VER_DOT))
if ns.include_idle:
- yield from in_build("pythonw_uwp.exe", new_name="idle")
+ yield from in_build("pythonw_uwp.exe", new_name="idle{}".format(VER_DOT))
if ns.include_stable:
yield from in_build(PYTHON_STABLE_DLL_NAME)
diff --git a/PC/layout/support/appxmanifest.py b/PC/layout/support/appxmanifest.py
index 58fba84..0a0f1fc 100644
--- a/PC/layout/support/appxmanifest.py
+++ b/PC/layout/support/appxmanifest.py
@@ -154,9 +154,9 @@ REGISTRY = {
"SysVersion": VER_DOT,
"Version": "{}.{}.{}".format(VER_MAJOR, VER_MINOR, VER_MICRO),
"InstallPath": {
- "": "[{AppVPackageRoot}]",
- "ExecutablePath": "[{AppVPackageRoot}]\\python.exe",
- "WindowedExecutablePath": "[{AppVPackageRoot}]\\pythonw.exe",
+ "": "[{{AppVPackageRoot}}]",
+ "ExecutablePath": "[{{AppVPackageRoot}}]\\python{}.exe".format(VER_DOT),
+ "WindowedExecutablePath": "[{{AppVPackageRoot}}]\\pythonw{}.exe".format(VER_DOT),
},
"Help": {
"Main Python Documentation": {
@@ -395,7 +395,7 @@ def get_appxmanifest(ns):
ns,
xml,
"Python",
- "python",
+ "python{}".format(VER_DOT),
["python", "python{}".format(VER_MAJOR), "python{}".format(VER_DOT)],
PYTHON_VE_DATA,
"console",
@@ -406,7 +406,7 @@ def get_appxmanifest(ns):
ns,
xml,
"PythonW",
- "pythonw",
+ "pythonw{}".format(VER_DOT),
["pythonw", "pythonw{}".format(VER_MAJOR), "pythonw{}".format(VER_DOT)],
PYTHONW_VE_DATA,
"windows",
@@ -418,7 +418,7 @@ def get_appxmanifest(ns):
ns,
xml,
"Pip",
- "pip",
+ "pip{}".format(VER_DOT),
["pip", "pip{}".format(VER_MAJOR), "pip{}".format(VER_DOT)],
PIP_VE_DATA,
"console",
@@ -430,7 +430,7 @@ def get_appxmanifest(ns):
ns,
xml,
"Idle",
- "idle",
+ "idle{}".format(VER_DOT),
["idle", "idle{}".format(VER_MAJOR), "idle{}".format(VER_DOT)],
IDLE_VE_DATA,
"windows",