Upgrade every installed package to the latest PyPI release — the 'pip upgrade-all' command pip never shipped.
Project description
pip-upgrade-all
The
pip upgrade-allcommand pip never shipped.
Upgrades every package installed in the current Python environment to its latest release on PyPI — one package at a time, using pip's own internal machinery.
The pip maintainers decided that environment-wide upgrade management is out of pip's scope. This tool fills that gap.
Install
pip install pip-upgrade-all
Usage
pip-upgrade-all [options]
By default, packages are upgraded one by one without dependency resolution
(--no-deps). This avoids the resolver backtracking and version conflicts
that come with upgrading everything at once. Use --with-deps to opt into
full resolution if you need it.
System-managed packages (those installed by dnf, rpm, apt, etc.) are
automatically detected via their INSTALLER metadata and skipped when
using --user, so they won't get a duplicate copy in your user site-packages.
Options
| Flag | Short | Description |
|---|---|---|
--dry-run |
-n |
Print what would be upgraded without doing anything |
--user |
Only upgrade pip-installed packages, into ~/.local |
|
--skip PKG |
-s PKG |
Skip a package (repeatable) |
--with-deps |
Enable full dependency resolution (slower, may conflict) | |
--index-url URL |
-i URL |
Use a custom package index |
--verbose |
-v |
Show pip's full output |
--version |
Print version and exit |
Examples
# Upgrade everything (no-deps, fast)
pip-upgrade-all
# Only upgrade pip-installed packages, leave system packages alone
pip-upgrade-all --user
# See what would change without touching anything
pip-upgrade-all --dry-run
# Skip specific packages
pip-upgrade-all --skip websockets --skip urllib3
# Full dependency resolution (slower, may backtrack)
pip-upgrade-all --with-deps
# Use a private index
pip-upgrade-all --index-url https://my.artifactory.example/simple/
Caveats
-
--no-depsis the default. This means genuinely new dependencies introduced by an upgraded package won't be installed automatically. If something breaks after upgrading, install the missing dependency manually or re-run with--with-deps. -
Dependency conflicts are ignored by default. Upgrading everything to latest will sometimes leave packages with incompatible version combinations (e.g.
package-arequireswebsockets<16but you now havewebsockets 16). These are usually harmless warnings unless you actually use that code path. Use--skipto pin packages you care about. -
System packages are skipped with
--user. Without--user, a small hardcoded list of known system packages (dnf,apt,pygobject, etc.) is still skipped as a safety net.
Programmatic API
from pip_upgrade_all.__main__ import upgrade_all
exit_code = upgrade_all(user=True, verbose=True)
License
GPL v3
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file upgrade_all-1.0.0.tar.gz.
File metadata
- Download URL: upgrade_all-1.0.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53255b97922f1089443393d307d68da0776797fb5f814e45bc2999021ca30638
|
|
| MD5 |
f9b5b2a4b3654f311d5f5f4e9dda539f
|
|
| BLAKE2b-256 |
2ff0f4ba9a61dcf6c8f4971da4c96913463cd705b0641b7e1db110463019559c
|
File details
Details for the file upgrade_all-1.0.0-py3-none-any.whl.
File metadata
- Download URL: upgrade_all-1.0.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0e3144c162919492f6df54986e9a3e9163f5b700458215ef9687c90fe491846
|
|
| MD5 |
4091e07c392194b25fd409f7bda537da
|
|
| BLAKE2b-256 |
6ecdbfa1e3344c63fb597c40f0f07907ec0c4492d4ecf51effefc7f2aa88d410
|