From 2893b4c85aa76a154c0e58ae3cfc9c5e7132af09 Mon Sep 17 00:00:00 2001 From: himself65 Date: Thu, 31 Dec 2020 00:23:40 +0800 Subject: [PATCH] build: check if python is a executable program After Windows 10 version 1903, placeholder files named "python.exe" and "python3.exe" appear, not executable programs, and open the MS Store when running without parameters. Fixes: https://github.com/nodejs/node/issues/36694 Refs: https://devblogs.microsoft.com/python/python-in-the-windows-10-may-2019-update PR-URL: https://github.com/nodejs/node/pull/36696 Reviewed-By: Jiawen Geng Reviewed-By: James M Snell --- tools/msvs/find_python.cmd | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/msvs/find_python.cmd b/tools/msvs/find_python.cmd index 8554d026cd4e3b..06e41fe06cd6ab 100644 --- a/tools/msvs/find_python.cmd +++ b/tools/msvs/find_python.cmd @@ -46,6 +46,8 @@ exit /b 1 :found-python echo Python found in %p%\python.exe +call :check-python %p%\python.exe +if errorlevel 1 goto :no-python endlocal ^ & set "pt=%p%" ^ & set "need_path_ext=%need_path%" @@ -54,6 +56,15 @@ set "pt=" set "need_path_ext=" exit /b 0 +:check-python +%~1 -V +:: 9009 means error file not found +if %errorlevel% equ 9009 ( + echo Not an executable Python program + exit /b 1 +) +exit /b 0 + :no-python echo Could not find Python. exit /b 1