From 43dd739e3c76ee188fbb019aa68b2e7fa000cb20 Mon Sep 17 00:00:00 2001 From: Justin Paul Date: Tue, 30 Jun 2026 16:20:02 -0400 Subject: [PATCH] CI(windows): per-user Python install + robust python.exe path lookup The installer's InstallAllUsers=1 needs admin (runner service isn't elevated) so Python landed in the per-user LOCALAPPDATA dir, not C:\Program Files; the hardcoded PATH prepend missed it -> 'python not recognized'. Switch to a per-user install and locate python.exe across the known dirs. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs --- .gitea/workflows/release.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0d48307..b5144a4 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -18,11 +18,17 @@ jobs: run: | $ErrorActionPreference = "Stop" if (-not (Get-Command python -ErrorAction SilentlyContinue)) { - Write-Host "Python not found; installing 3.12..." + Write-Host "Python not found; installing 3.12 (per-user, no admin needed)..." $url = "https://www.python.org/ftp/python/3.12.7/python-3.12.7-amd64.exe" Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\py.exe" - Start-Process -Wait -FilePath "$env:TEMP\py.exe" -ArgumentList "/quiet","InstallAllUsers=1","PrependPath=1","Include_test=0" - $env:Path = "C:\Program Files\Python312;C:\Program Files\Python312\Scripts;$env:Path" + Start-Process -Wait -FilePath "$env:TEMP\py.exe" -ArgumentList "/quiet","PrependPath=1","Include_test=0" + $base = @( + "$env:LOCALAPPDATA\Programs\Python\Python312", + "C:\Program Files\Python312", + "C:\Python312" + ) | Where-Object { Test-Path "$_\python.exe" } | Select-Object -First 1 + if (-not $base) { throw "Python install did not produce python.exe in a known location" } + $env:Path = "$base;$base\Scripts;$env:Path" } python --version python -m pip install --upgrade pip