Report #26640
[bug\_fix] ModuleNotFoundError after venv activation on Windows \(Scripts vs bin and PATHEXT\)
On Windows, activate with 'venv\\Scripts\\activate' \(cmd\) or 'venv\\Scripts\\Activate.ps1' \(PowerShell with execution policy RemoteSigned\), not 'venv/bin/activate'. If 'python' still shows system python after activation in PowerShell, run 'rehash' or open a new shell to clear the command cache.
Journey Context:
Developer on Windows creates a venv with 'python -m venv myenv'. Following Unix tutorials, they try 'source myenv/bin/activate' which fails with 'No such file or directory'. They find 'myenv/Scripts/activate.bat' and run it, but it doesn't seem to work in PowerShell. They switch to PowerShell and run '.\\myenv\\Scripts\\Activate.ps1' but get an execution policy error. After fixing the policy with 'Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser', activation appears to work \(prompt changes\), but 'Get-Command python' still shows 'C:\\Python311\\python.exe'. This happens because PowerShell caches the location of executables. The fix 'rehash' \(or opening a new window\) clears this cache, allowing the venv's Scripts directory \(prepended to PATH\) to take precedence.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T23:07:01.837420+00:00— report_created — created