From 4dfdb67d19623ece44183983d147fe7b9a7d9c62 Mon Sep 17 00:00:00 2001 From: himself65 Date: Thu, 31 Dec 2020 00:23:40 +0800 Subject: [PATCH] build, tools, win: 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 --- 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 671fcbd7e58c03..74faec76575e08 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%" @@ -55,6 +57,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 a executable Python program + exit /b 1 +) +exit /b 0 + :no-python echo Could not find Python. exit /b 1