Visitar URL original
[3.12] gh-117505: Run ensurepip in isolated env in Windows installer (GH-118257) by miss-islington · Pull Request #119422 · python/cpython · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
gh-117505: Run ensurepip in isolated env in Windows installer (GH-118257
)

ensurepip forks a subprocess to run pip itself, but that subprocess only inherits a -I isolated mode flag (see _run_pip() in Lib/ensurepip/__init__.py), not the "-E -s" flags that the installer has been using. This means that parts of ensurepip don't actually run in an isolated environment and can make incorrect decisions based on packages installed in the user site-packages.
(cherry picked from commit c9073eb)

Co-authored-by: Michael Vincent <377567+Vynce@users.noreply.github.com>
  • Loading branch information
Vynce authored and miss-islington committed May 22, 2024
commit 4f2b544238e48a714ce05b7dcf97e98a1b2b6acd
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixes an issue with the Windows installer not running ensurepip in a fully isolated environment. This could cause unexpected interactions with the user site-packages.
4 changes: 2 additions & 2 deletions Tools/msi/pip/pip.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
<?endif ?>

<!-- Install/uninstall pip -->
<CustomAction Id="SetUpdatePipCommandLine" Property="UpdatePip" Value='"[PYTHON_EXE]" -E -s -m ensurepip -U --default-pip' Execute="immediate" />
<CustomAction Id="SetRemovePipCommandLine" Property="UpdatePip" Value='"[PYTHON_EXE]" -E -s -B -m ensurepip._uninstall' Execute="immediate" />
<CustomAction Id="SetUpdatePipCommandLine" Property="UpdatePip" Value='"[PYTHON_EXE]" -I -m ensurepip -U --default-pip' Execute="immediate" />
<CustomAction Id="SetRemovePipCommandLine" Property="UpdatePip" Value='"[PYTHON_EXE]" -I -B -m ensurepip._uninstall' Execute="immediate" />

<InstallExecuteSequence>
<Custom Action="SetUpdatePipCommandLine" Before="UpdatePip">(&amp;DefaultFeature=3) AND NOT (!DefaultFeature=3)</Custom>
Expand Down