onw 0.4: API-first server (/ info, /health, CORS, --api-key, /chat, /check), onw window (model download manager, server control, settings), setup finds / installs Python
67fe962 verified | @echo off | |
| rem Sets PY to a Python 3.10+ command, offering to install Python 3.12 with winget when none is found. | |
| rem Used by setup.bat and start.bat: call find_python.bat then if not defined PY exit /b 1 | |
| set "PY=" | |
| set "CHECK=import sys; sys.exit(0 if sys.version_info >= (3, 10) else 1)" | |
| rem 1) the py launcher, 2) python on PATH (the Microsoft Store alias fails this check, it is not a real Python), | |
| rem 3) the per-user install locations winget / python.org use | |
| if not defined ONW_TEST_NOPY ( | |
| py -3 -c "%CHECK%" >nul 2>nul && set "PY=py -3" | |
| if not defined PY python -c "%CHECK%" >nul 2>nul && set "PY=python" | |
| if not defined PY for %%V in (313 312 311 310) do ( | |
| if not defined PY if exist "%LOCALAPPDATA%\Programs\Python\Python%%V\python.exe" set "PY="%LOCALAPPDATA%\Programs\Python\Python%%V\python.exe"" | |
| ) | |
| ) | |
| if defined PY exit /b 0 | |
| echo. | |
| echo Python 3.10 or newer was not found. | |
| where winget >nul 2>nul | |
| if errorlevel 1 ( | |
| echo winget is not available either. Please install Python from https://www.python.org/downloads/ | |
| echo ^(check "Add python.exe to PATH"^), then run this again. | |
| start "" https://www.python.org/downloads/ | |
| exit /b 1 | |
| ) | |
| choice /c YN /m "Install Python 3.12 for this user with winget now (accepts the Python license)" | |
| if errorlevel 2 ( | |
| echo Please install Python 3.10+ from https://www.python.org/downloads/ and run this again. | |
| exit /b 1 | |
| ) | |
| winget install -e --id Python.Python.3.12 --scope user --accept-package-agreements --accept-source-agreements | |
| if errorlevel 1 ( | |
| echo winget could not install Python. Please install it from https://www.python.org/downloads/ | |
| exit /b 1 | |
| ) | |
| rem the new PATH is not visible in this window yet: use the installed files directly | |
| if exist "%LOCALAPPDATA%\Programs\Python\Python312\python.exe" set "PY="%LOCALAPPDATA%\Programs\Python\Python312\python.exe"" | |
| if not defined PY if exist "%LOCALAPPDATA%\Programs\Python\Launcher\py.exe" set "PY="%LOCALAPPDATA%\Programs\Python\Launcher\py.exe" -3" | |
| if not defined PY ( | |
| echo Python was installed but could not be found yet. Please open a new window and run this again. | |
| exit /b 1 | |
| ) | |
| echo [setup] using %PY% | |
| exit /b 0 | |