https://github.com/python/cpython/commit/ac99d7e5cce85f87475817fd2b8b3aeded6126c6
commit: ac99d7e5cce85f87475817fd2b8b3aeded6126c6
branch: 3.13
author: Steve Dower <steve.do...@python.org>
committer: zooba <steve.do...@microsoft.com>
date: 2025-05-07T13:24:33+01:00
summary:

gh-133512: Adds warnings to py.exe launcher about subcommands belonging to 
Python install manager (GH-133514)

files:
A Misc/NEWS.d/next/Windows/2025-05-06-14-09-19.gh-issue-133512.bh-D-g.rst
M PC/launcher2.c

diff --git 
a/Misc/NEWS.d/next/Windows/2025-05-06-14-09-19.gh-issue-133512.bh-D-g.rst 
b/Misc/NEWS.d/next/Windows/2025-05-06-14-09-19.gh-issue-133512.bh-D-g.rst
new file mode 100644
index 00000000000000..7579910f988f75
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2025-05-06-14-09-19.gh-issue-133512.bh-D-g.rst
@@ -0,0 +1,2 @@
+Add warnings to :ref:`launcher` about use of subcommands belonging to the
+Python install manager.
diff --git a/PC/launcher2.c b/PC/launcher2.c
index 72121724726ccb..357ee53e55c22d 100644
--- a/PC/launcher2.c
+++ b/PC/launcher2.c
@@ -1058,7 +1058,7 @@ checkShebang(SearchInfo *search)
         debug(L"# Failed to open %s for shebang parsing (0x%08X)\n",
               scriptFile, GetLastError());
         free(scriptFile);
-        return 0;
+        return RC_NO_SCRIPT;
     }
 
     DWORD bytesRead = 0;
@@ -2665,6 +2665,21 @@ performSearch(SearchInfo *search, EnvironmentInfo **envs)
     case RC_NO_SHEBANG:
     case RC_RECURSIVE_SHEBANG:
         break;
+    case RC_NO_SCRIPT:
+        if (!_comparePath(search->scriptFile, search->scriptFileLength, 
L"install", -1) ||
+            !_comparePath(search->scriptFile, search->scriptFileLength, 
L"uninstall", -1) ||
+            !_comparePath(search->scriptFile, search->scriptFileLength, 
L"list", -1) ||
+            !_comparePath(search->scriptFile, search->scriptFileLength, 
L"help", -1)) {
+            fprintf(
+                stderr,
+                "WARNING: The '%.*ls' command is unavailable because this is 
the legacy py.exe command.\n"
+                "If you have already installed the Python install manager, 
open Installed Apps and "
+                "remove 'Python Launcher' to enable the new py.exe command.\n",
+                search->scriptFileLength,
+                search->scriptFile
+            );
+        }
+        break;
     default:
         return exitCode;
     }

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to