fix(python): use ensurepip for reliable pip installation on Windows #207
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
get-pip.pywithensurepip --default-pip --upgradeas primary pip installation methodInstall()to configure pip before creating shimsget-pip.pyfor edge casesenableSitePackagesand shim configurationProblem
Windows Python installations from two different sources had pip issues:
pip.exehas broken embedded build pathsUsers installing Python 3.14.2 on Windows saw "Failed to install pip" warnings (issue #201).
Solution
Use
python -m ensurepip --default-pip --upgradewhich:pip.exe,pip3.exe,pipX.Y.exeexecutablesget-pip.pyif ensurepip failsChanges
src/runtimes/python/provider.goinstallPip()using ensurepip as primary methodinstallPipWithGetPip()as fallbackenableSitePackages()now best-effort (ignores missing ._pth files)src/runtimes/python/provider_test.goTestPythonProvider_EnableSitePackages(4 test cases)TestPythonProvider_Shims(verifies pip/pip3 shims configured)Test plan
go test ./runtimes/python/...)go test ./...)golangci-lint run ./...)Fixes #201