pipx
pipx copied to clipboard
pipx install --update
pipx install:
- install if missing.
- if available and in the right or wrong version (spec not respected), does nothing
pipx install --force:
- always reinstall, even if available and if spec respected
pipx update:
- always update, even when spec is respected
- if not installed, fail
pipx update --install:
- always update, even when spec is respected
- if not installed, install.
What I need is a command that will:
- if not install, install respecting the provided spec
- if installed but the spec is not respected, update to the spec, allowing downgrade
- if installed and spec is respected, does nothing, not even a network connectivity
Example:
$ pipx install --upgrade pylint<7
- if the current pylint venv respects
<7, does nothing. - If the current pylint venv does not respect
<7, update - if no pylint installed, install to version
<7
On the network connectivity, this might be done with https://github.com/pypa/pipx/issues/1275 to allow pipx run do not try to perform any network connectivity when the spec is respected
Actually, this is also a feature I want. But I would suggest to align with pip install to use --upgrade and --upgrade-stragtegy as options instead.
Contributions are welcome.
Actually, this is also a feature I want. But I would suggest to align with pip install to use --upgrade and --upgrade-stragtegy as options instead.
@huxuan I'm interested in working on this, but I fail to see how pipx install --upgrade <package> would be any different than pipx upgrade <package>? Or is this just a convenience command to mirror the functionality of pip more closely? I suppose pipx install --upgrade would always install if not exists, whereas pipx upgrade would just error, but that's the only differing functionality between the two comands I can think of right now