What happened?
On Windows, the dependency check reports "Python not found in PATH" on a machine
where python works fine from a terminal. uv is detected correctly; only Python
fails.
I'm using pyenv-win. python --version prints Python 3.12.9 in any shell, and
uv python list finds the interpreter too, but Window > MCP for Unity > Local
Setup Window insists Python is missing, so setup cannot complete.
The trigger is not pyenv specifically. WindowsPlatformDetector.DetectPython()
looks up the literal name python.exe and validates only the FIRST match where
returns. On a stock Windows install that first match is the Microsoft Store App
Execution Alias at %LOCALAPPDATA%\Microsoft\WindowsApps\python.exe — a 0-byte stub
that exits 9009 when Python wasn't installed from the Store. Detection stops
there and never looks at the PATH entries behind it, so any Python that sits
after the alias is invisible.
Expected: Python 3.12.9 detected, setup proceeds.
Actual: "Python not found in PATH" / "Install Python 3.10+ and ensure it's
added to PATH."
I traced this to three independent bugs (one of which makes extraPathPrepend a
no-op on Windows for every lookup, not just Python) and have a patch with tests.
Posting the full analysis and the diff as a comment below.
Reproduction steps
- On Windows 11, leave the default App Execution Aliases enabled (this is the
out-of-the-box state) and do NOT install Python from the Microsoft Store.
- Install Python via pyenv-win:
pyenv install 3.12.9
pyenv global 3.12.9
Confirm it works: python --version -> Python 3.12.9
- Install uv and confirm: uv --version
- Note what the two lookups return:
where python -> ....pyenv\pyenv-win\shims\python
....pyenv\pyenv-win\shims\python.bat
...\AppData\Local\Microsoft\WindowsApps\python.exe
where python.exe -> ...\AppData\Local\Microsoft\WindowsApps\python.exe
The plugin queries the second form, which only finds the Store stub.
- In Unity, open Window > MCP for Unity > Local Setup Window and run the
dependency check.
- Observe: uv is found, Python is reported as not found.
Any setup where a working interpreter sits behind the WindowsApps alias on PATH
should reproduce step 6; pyenv-win just makes it the common case, because its
shims are .bat files that where python.exe cannot match at all.
Unity version
6000.5.7f1
MCP for Unity package version
10.1.2
Python server version
No response
MCP client
Claude Code
Transport
Don't know
OS
Windows
Relevant logs / console output
=== where lookups ===
> where python
C:\Users\<me>\.pyenv\pyenv-win\shims\python
C:\Users\<me>\.pyenv\pyenv-win\shims\python.bat
C:\Users\<me>\AppData\Local\Microsoft\WindowsApps\python.exe
> where python.exe
C:\Users\<me>\AppData\Local\Microsoft\WindowsApps\python.exe
=== the Store alias, which is what detection ends up probing ===
> (Get-Item "...\WindowsApps\python.exe").Length
0
> & "...\WindowsApps\python.exe" --version
exit code = 9009
stdout = (empty)
stderr = Python was not found; run without arguments to install from the
Microsoft Store, or disable this shortcut from Settings > Apps >
Advanced app settings > App execution aliases.
=== uv sees the interpreter fine ===
> uv python list
cpython-3.12.9-windows-x86_64-none C:\Users\<me>\.pyenv\pyenv-win\shims\python.bat
cpython-3.7.8-windows-x86_64-none C:\Program Files (x86)\...\Python37_64\python.exe
=== DependencyManager.CheckAllDependencies -> DetectPython() ===
Name : Python
IsAvailable : False
Version :
Path :
Details : Install Python 3.10+ and ensure it's added to PATH.
ErrorMessage : Python not found in PATH
=== same call, with the patch applied ===
Name : Python
IsAvailable : True
Version : 3.12.9
Path : C:\Users\<me>\.pyenv\pyenv-win\shims\python3.bat
Details : Found Python 3.12.9 in PATH
ErrorMessage :
Checks
What happened?
On Windows, the dependency check reports "Python not found in PATH" on a machine
where python works fine from a terminal. uv is detected correctly; only Python
fails.
I'm using pyenv-win.
python --versionprints Python 3.12.9 in any shell, anduv python listfinds the interpreter too, but Window > MCP for Unity > LocalSetup Window insists Python is missing, so setup cannot complete.
The trigger is not pyenv specifically.
WindowsPlatformDetector.DetectPython()looks up the literal name
python.exeand validates only the FIRST matchwherereturns. On a stock Windows install that first match is the Microsoft Store App
Execution Alias at %LOCALAPPDATA%\Microsoft\WindowsApps\python.exe — a 0-byte stub
that exits 9009 when Python wasn't installed from the Store. Detection stops
there and never looks at the PATH entries behind it, so any Python that sits
after the alias is invisible.
Expected: Python 3.12.9 detected, setup proceeds.
Actual: "Python not found in PATH" / "Install Python 3.10+ and ensure it's
added to PATH."
I traced this to three independent bugs (one of which makes extraPathPrepend a
no-op on Windows for every lookup, not just Python) and have a patch with tests.
Posting the full analysis and the diff as a comment below.
Reproduction steps
out-of-the-box state) and do NOT install Python from the Microsoft Store.
pyenv install 3.12.9
pyenv global 3.12.9
Confirm it works: python --version -> Python 3.12.9
where python -> ....pyenv\pyenv-win\shims\python
....pyenv\pyenv-win\shims\python.bat
...\AppData\Local\Microsoft\WindowsApps\python.exe
where python.exe -> ...\AppData\Local\Microsoft\WindowsApps\python.exe
The plugin queries the second form, which only finds the Store stub.
dependency check.
Any setup where a working interpreter sits behind the WindowsApps alias on PATH
should reproduce step 6; pyenv-win just makes it the common case, because its
shims are .bat files that
where python.execannot match at all.Unity version
6000.5.7f1
MCP for Unity package version
10.1.2
Python server version
No response
MCP client
Claude Code
Transport
Don't know
OS
Windows
Relevant logs / console output
Checks