Installing pip on Windows restores access to third-party packages, project bootstrap commands, and virtual-environment tooling when a working Python runtime exists but its package installer is missing. Without it, dependency installs from PyPI, local wheel files, or requirements-based workflows stop at the interpreter boundary.

Current python.org CPython installations for Windows usually include pip already, and current packaging guidance favors interpreter-bound commands such as py -m pip over whichever pip.exe happens to resolve first in PATH. When the module is missing, the standard-library ensurepip bootstrap restores the bundled pip wheel from the local CPython installation before an optional upgrade pulls the latest release from the package index.

The workflow assumes a standard CPython installation on a current supported Windows release with the py launcher available in Command Prompt or PowerShell. If py is missing, or if the Microsoft Store alias intercepts python, repair or install Python first and keep using py -m pip afterward so package commands stay attached to the intended runtime.

Steps to install pip on Windows:

  1. Confirm that the Windows Python launcher is available for the target runtime.
    C:\> py --version
    Python 3.14.3

    If py is not recognized, or if the Microsoft Store opens instead of a local Python runtime, repair or install Python before continuing.

  2. Check whether pip is already present for that interpreter.
    C:\> py -m pip --version
    pip 26.0.1 from C:\Users\example.user\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip (python 3.14)

    If this returns a version and path, the interpreter already has a working pip module and only the upgrade step below is optional.

    Current pip docs show the interpreter-bound form py -m pip on Windows so package commands stay tied to the intended runtime even when multiple Python installs exist.

  3. Bootstrap the bundled pip copy when the previous step reports that the module is missing.
    C:\> py -m ensurepip --upgrade --default-pip
    Looking in links: C:\Users\example.user\AppData\Local\Temp\tmpq4w9m2k1
    Processing C:\Users\example.user\AppData\Local\Temp\tmpq4w9m2k1\pip-26.0-py3-none-any.whl
    Installing collected packages: pip
    Successfully installed pip-26.0

    The supported Windows recovery path in current pip docs is py -m ensurepip --upgrade; this example adds --default-pip so the unversioned pip entry point is recreated as well.

    The ensurepip bootstrap uses the bundled wheel that ships with CPython and does not need internet access.

    If ensurepip is unavailable, the local runtime was likely installed from a redistributor build or an incomplete Python install, so repair or reinstall Python instead of copying pip files manually.

  4. Upgrade the restored pip module to the current release for that interpreter.
    C:\> py -m pip install --upgrade pip
    Requirement already satisfied: pip in C:\Users\example.user\AppData\Local\Programs\Python\Python314\Lib\site-packages (26.0)
    Collecting pip
      Using cached pip-26.0.1-py3-none-any.whl.metadata (4.7 kB)
    Using cached pip-26.0.1-py3-none-any.whl (1.8 MB)
    Installing collected packages: pip
      Attempting uninstall: pip
        Found existing installation: pip 26.0
        Uninstalling pip-26.0:
          Successfully uninstalled pip-26.0
    Successfully installed pip-26.0.1

    This step reaches the configured package index, so proxy or TLS interception rules can still affect it even when ensurepip succeeded locally.

    Keep using py -m pip afterward rather than whichever pip.exe happens to appear first in PATH.

  5. Verify that pip now responds from the expected Python location.
    C:\> py -m pip --version
    pip 26.0.1 from C:\Users\example.user\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip (python 3.14)

    The sample profile name in this output is masked; the important signal is that the path after from points to the intended Python314 installation tree.

    If the path points to the wrong interpreter, rerun the command with a specific launcher selector such as py -3.14 -m pip --version.