Overview:
- Install new packages without upgrading installed ones:
pip install
(without -U
)
- Upgrade only packages that are outdated according to requirements:
pip install --upgrade --upgrade-strategy only-if-needed
(default in new versions)
- Upgrade package and all dependencies to latest version:
pip install --upgrade --upgrade-strategy eager
(default in old versions)
- Install or upgrade listed packages without touching dependencies: --no-deps
UPDATE (thanks to @Jether's comment): If you're using the latest version of pip, then updating dependencies only when necessary is now the default behavior, and you don't need to do anything special! The answer below outlines the steps for older versions of pip (which also works for newer versions if you want to be portable).
If you really want to not touch dependencies, then indeed the way to go is
pip install -U --no-deps mypackage
But I think what you'll usually want is to not upgrade dependencies unless it's required. In that case you can use:
pip install --upgrade --upgrade-strategy only-if-needed mypackage
This only updates requirements if the package requires a newer version than is installed.