# If the pip version doesn't match the bundled one, leave it alone
if pip.__version__ != _PIP_VERSION:
- msg = ("ensurepip will only uninstall a matching pip "
+ msg = ("ensurepip will only uninstall a matching version "
"({!r} installed, {!r} bundled)")
- raise RuntimeError(msg.format(pip.__version__, _PIP_VERSION))
+ print(msg.format(pip.__version__, _PIP_VERSION), file=sys.stderr)
+ return
_require_ssl_for_pip()
_disable_pip_configuration_settings()
ensurepip._uninstall_helper()
self.run_pip.assert_not_called()
- def test_uninstall_fails_with_wrong_version(self):
+ def test_uninstall_skipped_with_warning_for_wrong_version(self):
with fake_pip("not a valid version"):
- with self.assertRaises(RuntimeError):
+ with test.support.captured_stderr() as stderr:
ensurepip._uninstall_helper()
+ warning = stderr.getvalue().strip()
+ self.assertIn("only uninstall a matching version", warning)
self.run_pip.assert_not_called()
- Issue #20743: Fix a reference leak in test_tcl.
+Build
+-----
+
+- Issue #20757: The ensurepip helper for the Windows uninstaller now skips
+ uninstalling pip (rather than failing) if the user has updated pip to a
+ different version from the one bundled with ensurepip.
+
Tools/Demos
-----------