diff --git a/build_files/windows/find_dependencies.cmd b/build_files/windows/find_dependencies.cmd
index 9fa3b156a4f03965596556f074e011b691c75042..fec2bd2e75235cd00793515513d85a7c2c3e6e7b 100644
--- a/build_files/windows/find_dependencies.cmd
+++ b/build_files/windows/find_dependencies.cmd
@@ -3,7 +3,32 @@ for %%X in (svn.exe) do (set SVN=%%~$PATH:X)
 for %%X in (cmake.exe) do (set CMAKE=%%~$PATH:X)
 for %%X in (ctest.exe) do (set CTEST=%%~$PATH:X)
 for %%X in (git.exe) do (set GIT=%%~$PATH:X)
+REM For python, default on 39 but if that does not exist also check
+REM the 310,311 and 312 folders to see if those are there, it checks
+REM this far ahead to ensure good lib folder compatiblity in the future.
 set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
+if EXIST %PYTHON% (
+	goto detect_python_done
+)
+set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\310\bin\python.exe
+if EXIST %PYTHON% (
+	goto detect_python_done
+)
+set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\311\bin\python.exe
+if EXIST %PYTHON% (
+	goto detect_python_done
+)
+set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\312\bin\python.exe
+if EXIST %PYTHON% (
+	goto detect_python_done
+)
+
+if NOT EXIST %PYTHON% (
+    echo Warning: Python not found, there is likely an issue with the library folder
+    set PYTHON=""
+)
+
+:detect_python_done
 if NOT "%verbose%" == "" (
 	echo svn    : "%SVN%"
 	echo cmake  : "%CMAKE%"
@@ -11,7 +36,3 @@ if NOT "%verbose%" == "" (
 	echo git    : "%GIT%"
 	echo python : "%PYTHON%"
 )
-if "%CMAKE%" == "" (
-	echo Cmake not found in path, required for building, exiting...
-	exit /b 1
-)
diff --git a/build_files/windows/format.cmd b/build_files/windows/format.cmd
index d5003c9f8d85211a33ebe6599e707138a5500ed4..95440cb18188c8e910786e0da142549580cabead 100644
--- a/build_files/windows/format.cmd
+++ b/build_files/windows/format.cmd
@@ -9,17 +9,11 @@ exit /b 1
 :detect_done
 echo found clang-format in %CF_PATH%
 
-if EXIST %PYTHON% (
-    set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
-    goto detect_python_done
+if NOT EXIST %PYTHON% (
+    echo python not found, required for this operation
+    exit /b 1
 )
 
-echo python not found in lib folder
-exit /b 1
-
-:detect_python_done
-echo found python (%PYTHON%)
-
 set FORMAT_PATHS=%BLENDER_DIR%\source\tools\utils_maintenance\clang_format_paths.py
 
 REM The formatting script expects clang-format to be in the current PATH.
diff --git a/build_files/windows/icons.cmd b/build_files/windows/icons.cmd
index d51b27d895380937e4cc52a77a84db9f0a19ef46..9390ccf827c7fdcca532d6fb0c24826095707fb6 100644
--- a/build_files/windows/icons.cmd
+++ b/build_files/windows/icons.cmd
@@ -1,18 +1,8 @@
-if EXIST "%PYTHON%" (
-    goto detect_python_done
+if NOT EXIST %PYTHON% (
+    echo python not found, required for this operation
+    exit /b 1
 )
 
-set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
-if EXIST %PYTHON% (
-    goto detect_python_done
-)
-
-echo python not found at %PYTHON%
-exit /b 1
-
-:detect_python_done
-echo found python (%PYTHON%)
-
 call "%~dp0\find_inkscape.cmd"
 
 if EXIST "%INKSCAPE_BIN%" (
diff --git a/build_files/windows/icons_geom.cmd b/build_files/windows/icons_geom.cmd
index 18312daf35bcb81615f57c1579d131b8c931853e..4cb3bf5b4df91bd2b95a627ebfa835075119be44 100644
--- a/build_files/windows/icons_geom.cmd
+++ b/build_files/windows/icons_geom.cmd
@@ -1,18 +1,8 @@
-if EXIST %PYTHON% (
-    goto detect_python_done
+if NOT EXIST %PYTHON% (
+    echo python not found, required for this operation
+    exit /b 1
 )
 
-set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
-if EXIST %PYTHON% (
-    goto detect_python_done
-)
-
-echo python not found at %PYTHON%
-exit /b 1
-
-:detect_python_done
-echo found python (%PYTHON%)
-
 call "%~dp0\find_blender.cmd"
 
 if EXIST "%BLENDER_BIN%" (
diff --git a/build_files/windows/update_sources.cmd b/build_files/windows/update_sources.cmd
index f8fbd3830901dca73e80881169a7b59481625ad0..f99ce43f40f7312ef2c974a2f90a3f9c4e439d1a 100644
--- a/build_files/windows/update_sources.cmd
+++ b/build_files/windows/update_sources.cmd
@@ -1,10 +1,7 @@
-if EXIST %PYTHON% (
-	goto detect_python_done
+if NOT EXIST %PYTHON% (
+    echo python not found, required for this operation
+    exit /b 1
 )
-
-echo python not found in lib folder
-exit /b 1
-
 :detect_python_done
 
 REM Use -B to avoid writing __pycache__ in lib directory and causing update conflicts.
diff --git a/make.bat b/make.bat
index d55b2cfd1b341e11545ea28c3522843f8022b98c..ff8059b07546f1631ec1ab1eeb1c899ca8a87f31 100644
--- a/make.bat
+++ b/make.bat
@@ -13,6 +13,9 @@ if errorlevel 1 goto EOF
 call "%BLENDER_DIR%\build_files\windows\parse_arguments.cmd" %*
 if errorlevel 1 goto EOF
 
+call "%BLENDER_DIR%\build_files\windows\find_dependencies.cmd"
+if errorlevel 1 goto EOF
+
 REM if it is one of the convenience targets and BLENDER_BIN is set
 REM skip compiler detection
 if "%ICONS%%ICONS_GEOM%%DOC_PY%" == "1" (
@@ -21,9 +24,6 @@ if "%ICONS%%ICONS_GEOM%%DOC_PY%" == "1" (
 	)
 )
 
-call "%BLENDER_DIR%\build_files\windows\find_dependencies.cmd"
-if errorlevel 1 goto EOF
-
 if "%BUILD_SHOW_HASHES%" == "1" (
 	call "%BLENDER_DIR%\build_files\windows\show_hashes.cmd"
 	goto EOF
@@ -88,6 +88,11 @@ if "%DOC_PY%" == "1" (
 	goto EOF
 )
 
+if "%CMAKE%" == "" (
+	echo Cmake not found in path, required for building, exiting...
+	exit /b 1
+)
+
 echo Building blender with VS%BUILD_VS_YEAR% for %BUILD_ARCH% in %BUILD_DIR%
 
 call "%BLENDER_DIR%\build_files\windows\check_libraries.cmd"