Skip to content

# Pin Packages

## Pin installed packages

Use `pipx pin` when you need to hold an installation at its current version. Pinned packages are skipped by `pipx upgrade`, `pipx upgrade-all`, and `pipx reinstall`, so the environment keeps its existing app and dependency versions until you unpin it.

- `pipx pin PACKAGE` — pins the main package and any injected packages in that virtual environment.
- `pipx pin PACKAGE --injected-only` — leaves the main package upgradable but pins every injected package instead.
- `pipx pin PACKAGE --skip PKG_A PKG_B` — pins injected packages except the ones you list (the flag implies `--injected-only`).
- `pipx unpin PACKAGE` — re-enables upgrades for the package and anything that was pinned with it.
- `pipx list --pinned` — shows every pinned environment; add `--include-injected` to see pinned injected packages.

pipx tracks the main package and any injected packages. It does not record individual transitive dependencies, so there is no way to pin a single dependency in isolation. Pinning the main package protects its dependency set because pipx skips running `pip install --upgrade` for that environment.