Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: prefer python 3 over 2 for configure #30091

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
# pyenv will alert which shims are available and then will fail the build.
_=[ 'exec' '/bin/sh' '-c' '''
test ${TRAVIS} && exec python "$0" "$@" # workaround for pyenv on Travis CI
which python2.7 >/dev/null && exec python2.7 "$0" "$@"
which python3.7 >/dev/null && exec python3.7 "$0" "$@"
which python3.6 >/dev/null && exec python3.6 "$0" "$@"
which python3.5 >/dev/null && exec python3.5 "$0" "$@"
which python2.7 >/dev/null && exec python2.7 "$0" "$@"
exec python "$0" "$@"
''' "$0" "$@"
]
Expand Down
52 changes: 1 addition & 51 deletions tools/msvs/find_python.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,6 @@
echo Looking for Python
setlocal enabledelayedexpansion

:: To remove the preference for Python 2, but still support it, just remove
:: the 5 blocks marked with "Python 2:" and the support warnings

:: Python 2: If python.exe is in %Path%, use if it's Python 2
FOR /F "delims=" %%a IN ('where python.exe 2^> NUL') DO (
SET need_path=0
SET p=%%~dpa
CALL :validate-v2
IF NOT ERRORLEVEL 1 GOTO :found-python2
GOTO :done-path-v2
)
:done-path-v2

:: Python 2: Query the 3 locations mentioned in PEP 514 for a python2 InstallPath
FOR %%K IN ( "HKCU\Software", "HKLM\SOFTWARE", "HKLM\Software\Wow6432Node") DO (
SET need_path=1
CALL :find-versions-v2 %%K
IF NOT ERRORLEVEL 1 CALL :validate-v2
IF NOT ERRORLEVEL 1 GOTO :found-python2
)

:: Use python.exe if in %PATH%
set need_path=0
for /f "delims=" %%a in ('where python.exe 2^> nul') do (
Expand All @@ -41,14 +20,6 @@ for %%k in ( "HKCU\Software", "HKLM\SOFTWARE", "HKLM\Software\Wow6432Node") do (
goto :no-python


:: Python 2: Find Python 2 installations in a registry location
:find-versions-v2
for /f "delims=" %%a in ('reg query "%~1\Python\PythonCore" /f * /k 2^> nul ^| findstr /r ^^HK ^| findstr "\\2\."') do (
call :read-installpath %%a
if not errorlevel 1 exit /b 0
)
exit /b 1

:: Find Python installations in a registry location
:find-versions
for /f "delims=" %%a in ('reg query "%~1\Python\PythonCore" /f * /k 2^> nul ^| findstr /r ^^HK') do (
Expand All @@ -73,32 +44,11 @@ for /f "skip=2 tokens=1* delims=)" %%a in ('reg query "%1\InstallPath" /ve /t RE
)
exit /b 1


:: Python 2: Check if %p% holds a path to a real python2 executable
:validate-v2
IF NOT EXIST "%p%\python.exe" EXIT /B 1
:: Check if %p% is python2
"%p%\python.exe" -V 2>&1 | findstr /R "^Python.2.*" > NUL
EXIT /B %ERRORLEVEL%


:: Python 2:
:found-python2
echo Python 2 found in %p%\python.exe
set pyver=2
goto :done

:found-python
echo Python found in %p%\python.exe
echo WARNING: Python 3 is not yet fully supported, to avoid issues Python 2 should be installed.
set pyver=3
goto :done

:done
endlocal ^
& set "pt=%p%" ^
& set "need_path_ext=%need_path%" ^
& set "VCBUILD_PYTHON_VERSION=%pyver%"
& set "need_path_ext=%need_path%"
set "VCBUILD_PYTHON_LOCATION=%pt%\python.exe"
if %need_path_ext%==1 set "PATH=%pt%;%PATH%"
set "pt="
Expand Down
3 changes: 0 additions & 3 deletions vcbuild.bat
Original file line number Diff line number Diff line change
Expand Up @@ -688,9 +688,6 @@ goto exit

:create-msvs-files-failed
echo Failed to create vc project files.
if %VCBUILD_PYTHON_VERSION%==3 (
echo Python 3 is not yet fully supported, to avoid issues Python 2 should be installed.
)
del .used_configure_flags
goto exit

Expand Down