py-pkg-updater
A clean, interactive CLI for checking and upgrading outdated Python packages in your current environment.
Overview
py-pkg-updater helps you inspect outdated pip packages, compare installed versions with the latest available versions, and upgrade selected packages from an interactive terminal interface.
It is designed for developers who want a faster, cleaner workflow than repeatedly running pip list --outdated and manually upgrading packages one by one.
Screenshots
Outdated packages table
Upgrade progress
Features
- Detect outdated packages using
pip list --outdated - Display outdated packages in a clean terminal table
- Upgrade all packages or selected packages only
- Select packages by number or by package name
- Rich-powered terminal UI when
richis available - Plain terminal fallback when
richis not installed - Works inside any Python environment where
pipis available
Installation
Install from PyPI:
pip install py-pkg-updater
Upgrade to the latest version:
pip install --upgrade py-pkg-updater
Usage
Run the command inside the Python environment you want to update:
update-packages
You will see a list of outdated packages and an interactive selection prompt.
Selection options
A upgrade all packages
N skip upgrading
1,3,5 upgrade selected packages by number
pip,rich upgrade selected packages by name
Recommended Workflow
Use py-pkg-updater inside an activated virtual environment.
Windows PowerShell
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install py-pkg-updater
update-packages
Windows CMD
python -m venv venv
venv\Scripts\activate
pip install py-pkg-updater
update-packages
macOS / Linux
python3 -m venv venv
source venv/bin/activate
pip install py-pkg-updater
update-packages
Why Use a Virtual Environment?
py-pkg-updater upgrades packages in the Python environment where it is executed.
For safer dependency management, use it inside a project-specific virtual environment instead of your global Python installation. This reduces the risk of breaking system-level tools or unrelated projects.
Requirements
- Python 3.9 or newer
piprich
Development
Clone the repository:
git clone https://github.com/AlonePyWarrior/packages_updator.git
cd packages_updator/update-python-packages
Create and activate a virtual environment:
python -m venv venv
Windows PowerShell:
.\venv\Scripts\Activate.ps1
Windows CMD:
venv\Scripts\activate
macOS / Linux:
source venv/bin/activate
Install the package in editable mode:
pip install -e .
Run locally:
update-packages
Build Locally
Install build tools:
pip install --upgrade build twine
Build the package:
python -m build
Check the distribution metadata:
python -m twine check dist/*
This creates distribution files in the dist/ directory.
Release Process
This project can be published manually with Twine or automatically through GitHub Actions and PyPI Trusted Publishing.
Manual release
python -m build
python -m twine check dist/*
python -m twine upload dist/*
Automated release with GitHub Actions
- Update the package version in
pyproject.tomlandsrc/update_python_packages/__init__.py. - Commit the version bump.
- Push a version tag such as
v0.1.6. - GitHub Actions builds and publishes the package to PyPI.
Example:
git add .
git commit -m "Release 0.1.6"
git push origin main
git tag v0.1.6
git push origin v0.1.6
Project Structure
packages_updator/
├── .github/
│ └── workflows/
│ └── publish-to-pypi.yml
├── update-python-packages/
│ ├── src/
│ │ └── update_python_packages/
│ │ ├── __init__.py
│ │ └── cli.py
│ ├── pyproject.toml
│ ├── README.md
│ └── LICENSE
└── release.py
Safety Notes
Package upgrades can introduce breaking changes, especially in active projects.
Recommended workflow:
- Activate your project virtual environment.
- Run
update-packages. - Upgrade selected packages.
- Run your tests.
- Commit dependency changes only if everything works.
Avoid running bulk upgrades in a production environment without testing.
Common Commands
| Task | Command |
|---|---|
| Install package | pip install py-pkg-updater |
| Upgrade package | pip install --upgrade py-pkg-updater |
| Run CLI | update-packages |
| Build locally | python -m build |
| Check build | python -m twine check dist/* |
| Editable install | pip install -e . |
License
This project is licensed under the MIT License.
Author
Created by Ali Esmaeilzadeh.
Metadata
Release files for py-pkg-updater 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| py_pkg_updater-0.1.7.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_pkg_updater-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.3 kB
Release files / py_pkg_updater-0.1.7.tar.gz
| Download URL | py_pkg_updater-0.1.7.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09cde1323b2c02de051d109912294cadfa62c5b4feb67cbc243a1b12dc892757
|
|
BLAKE2b-256 checksum How to use checksums |
caafa6cf50cd484513a3851b822365beeb52aba530b9153525fff1da27ce0186
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 7, 2026.
Transparency logRelease files / py_pkg_updater-0.1.7-py3-none-any.whl
| Download URL | py_pkg_updater-0.1.7-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
daf250efc504c3afdc0310cd547fcd4603e793ff418f69ff73755794a3737955
|
|
BLAKE2b-256 checksum How to use checksums |
8c0f65232b40147a7f015eefbab6173ee47a2fe9ec387dac1f080f29400e9865
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 7, 2026.
Transparency log