pipxinstall
Install a package
pipxinstall-all
Install all packages
pipxuninject
Uninstall injected packages from an existing Virtual Environment
pipxinject
Install packages into an existing Virtual Environment
pipxpin
Pin the specified package to prevent it from being upgraded
pipxunpin
Unpin the specified package
pipxupgrade
Upgrade a package
pipxupgrade-all
Upgrade all packages. Runs `pip install -U <pkgname>` for each package.
pipxupgrade-shared
Upgrade shared libraries.
pipxuninstall
Uninstall a package
pipxuninstall-all
Uninstall all packages
pipxreinstall
Reinstall a package
pipxreinstall-all
Reinstall all packages
pipxlist
List installed packages
pipxinterpreter
Interact with interpreters managed by pipx
pipxrun
Download the latest version of a package to a temporary virtual environment, then run an app from
it. Also compatible with local `__pypackages__` directory (experimental).
pipxrunpip
Run pip in an existing pipx-managed Virtual Environment
pipxensurepath
Ensure directories necessary for pipx operation are in your PATH environment variable.
pipxenvironment
Print a list of environment variables and paths used by pipx.
pipxcompletions
Print instructions on enabling shell completions for pipx
COMMAND'pipxinstall'
usage: pipx install [-h] [--quiet] [--verbose] [--global] [--include-deps]
[--force] [--suffix SUFFIX] [--python PYTHON]
[--fetch-missing-python] [--preinstall PREINSTALL]
[--system-site-packages] [--index-url INDEX_URL]
[--editable] [--pip-args PIP_ARGS]
package_spec [package_spec ...]
The install command is the preferred way to globally install apps from python packages on your system. It
creates an isolated virtual environment for the package, then ensures the package's apps are accessible
on your $PATH. The package's manual pages installed in share/man/man[1-9] can be viewed with man on an
operating system where it is available and the path in the environment variable `PIPX_MAN_DIR` (default:
~/.local/share/man) is in the man search path ($MANPATH).
The result: apps you can run from anywhere, located in packages you can cleanly upgrade or uninstall.
Guaranteed to not have dependency version conflicts or interfere with your OS's python packages. 'sudo'
is not required to do this.
pipx install PACKAGE_SPEC ... pipx install --python PYTHON PACKAGE_SPEC pipx install VCS_URL pipx
install ./LOCAL_PATH pipx install ZIP_FILE pipx install TAR_GZ_FILE
The PACKAGE_SPEC argument is passed directly to `pip install`.
Virtual Environments will be installed to `$PIPX_HOME/venvs`. The default pipx home location is
~/.local/share/pipx and can be overridden by setting the environment variable `PIPX_HOME`. If the
`--global` option is used, the default pipx home location instead is /opt/pipx and can be overridden by
setting the environment variable `PIPX_GLOBAL_HOME`.
The default app location is ~/.local/bin and can be overridden by setting the environment variable
`PIPX_BIN_DIR`. If the `--global` option is used, the default app location instead is /usr/local/bin and
can be overridden by setting the environment variable `PIPX_GLOBAL_BIN_DIR`.
The default manual pages location is ~/.local/share/man and can be overridden by setting the environment
variable `PIPX_MAN_DIR`. If the `--global` option is used, the default manual pages location instead is
/usr/local/share/man and can be overridden by setting the environment variable `PIPX_GLOBAL_MAN_DIR`.
The default python executable used to install a package is /usr/bin/python3.12 and can be overridden by
setting the environment variable `PIPX_DEFAULT_PYTHON`.
package_spec
package name(s) or pip installation spec(s)
OPTIONS'pipxinstall'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--include-deps
Include apps of dependent packages
--force, -f
Modify existing virtual environment and files in PIPX_BIN_DIR and PIPX_MAN_DIR
--suffixSUFFIX
Optional suffix for virtual environment and executable names. NOTE: The suffix feature is
experimental and subject to change.
--pythonPYTHON
Python to install with. Possible values can be the executable name (python3.11), the version of an
available system Python or to pass to py launcher (3.11), or the full path to the executable.
Requires Python 3.8 or above.
--fetch-missing-python
Whether to fetch a standalone python build from GitHub if the specified python version is not
found locally on the system.
--preinstallPREINSTALL
Optional package to be installed into the Virtual Environment before installing the main package.
Use this flag multiple times if you want to preinstall multiple packages.
--system-site-packages
Give the virtual environment access to the system site-packages dir.
--index-urlINDEX_URL, -iINDEX_URL
Base URL of Python Package Index
--editable, -e
Install a project in editable mode
--pip-argsPIP_ARGS
Arbitrary pip arguments to pass directly to pip install/upgrade commands
COMMAND'pipxinstall-all'
usage: pipx install-all [-h] [--quiet] [--verbose] [--global] [--force]
[--python PYTHON] [--fetch-missing-python]
[--system-site-packages] [--index-url INDEX_URL]
[--editable] [--pip-args PIP_ARGS]
spec_metadata_file
Installs all the packages according to spec metadata file.
spec_metadata_file
Spec metadata file generated from pipx list --json
OPTIONS'pipxinstall-all'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--force, -f
Modify existing virtual environment and files in PIPX_BIN_DIR and PIPX_MAN_DIR
--pythonPYTHON
Python to install with. Possible values can be the executable name (python3.11), the version of an
available system Python or to pass to py launcher (3.11), or the full path to the executable.
Requires Python 3.8 or above.
--fetch-missing-python
Whether to fetch a standalone python build from GitHub if the specified python version is not
found locally on the system.
--system-site-packages
Give the virtual environment access to the system site-packages dir.
--index-urlINDEX_URL, -iINDEX_URL
Base URL of Python Package Index
--editable, -e
Install a project in editable mode
--pip-argsPIP_ARGS
Arbitrary pip arguments to pass directly to pip install/upgrade commands
COMMAND'pipxuninject'
usage: pipx uninject [-h] [--quiet] [--verbose] [--global] [--leave-deps]
package dependencies [dependencies ...]
Uninstalls injected packages from an existing pipx-managed virtual environment.
package
Name of the existing pipx-managed Virtual Environment to inject into
dependencies
the package names to uninject from the Virtual Environment
OPTIONS'pipxuninject'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--leave-deps
Only uninstall the main injected package but leave its dependencies installed.
COMMAND'pipxinject'
usage: pipx inject [-h] [--quiet] [--verbose] [--global] [-r file]
[--include-apps] [--include-deps] [--system-site-packages]
[--index-url INDEX_URL] [--editable] [--pip-args PIP_ARGS]
[--force] [--with-suffix]
package [dependencies ...]
Installs packages to an existing pipx-managed virtual environment.
package
Name of the existing pipx-managed Virtual Environment to inject into
dependencies
the packages to inject into the Virtual Environment--either package name or pip package spec
OPTIONS'pipxinject'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
-rfile, --requirementfile
file containing the packages to inject into the Virtual Environment--one package name or pip
package spec per line. May be specified multiple times.
--include-apps
Add apps from the injected packages onto your PATH and expose their manual pages
--include-deps
Include apps of dependent packages. Implies --include-apps
--system-site-packages
Give the virtual environment access to the system site-packages dir.
--index-urlINDEX_URL, -iINDEX_URL
Base URL of Python Package Index
--editable, -e
Install a project in editable mode
--pip-argsPIP_ARGS
Arbitrary pip arguments to pass directly to pip install/upgrade commands
--force, -f
Modify existing virtual environment and files in PIPX_BIN_DIR and PIPX_MAN_DIR
--with-suffix
Add the suffix (if given) of the Virtual Environment to the packages to inject
COMMAND'pipxpin'
usage: pipx pin [-h] [--quiet] [--verbose] [--global] [--injected-only]
[--skip SKIP [SKIP ...]]
package
Pin the specified package to prevent it from being upgraded
package
Installed package to pin
OPTIONS'pipxpin'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--injected-only
Pin injected packages in venv only, so that they will not be upgraded during upgrade operations.
Note that this should not be passed if you wish to pin both main package and injected packages.
--skipSKIP[SKIP...]
Skip these packages. Implies `--injected-only`.
COMMAND'pipxunpin'
usage: pipx unpin [-h] [--quiet] [--verbose] [--global] package
Unpin the specified package and all injected packages in its venv to allow them to be upgraded
package
Installed package to unpin
OPTIONS'pipxunpin'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
COMMAND'pipxupgrade'
usage: pipx upgrade [-h] [--quiet] [--verbose] [--global] [--include-injected]
[--force] [--system-site-packages] [--index-url INDEX_URL]
[--editable] [--pip-args PIP_ARGS] [--install]
[--python PYTHON] [--fetch-missing-python]
packages [packages ...]
Upgrade package(s) in pipx-managed Virtual Environment(s) by running 'pip install --upgrade PACKAGE'
packages
package names(s) to upgrade
OPTIONS'pipxupgrade'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--include-injected
Also upgrade packages injected into the main app's environment
--force, -f
Modify existing virtual environment and files in PIPX_BIN_DIR and PIPX_MAN_DIR
--system-site-packages
Give the virtual environment access to the system site-packages dir.
--index-urlINDEX_URL, -iINDEX_URL
Base URL of Python Package Index
--editable, -e
Install a project in editable mode
--pip-argsPIP_ARGS
Arbitrary pip arguments to pass directly to pip install/upgrade commands
--install
Install package spec if missing
--pythonPYTHON
Python to install with. Possible values can be the executable name (python3.11), the version of an
available system Python or to pass to py launcher (3.11), or the full path to the executable.
Requires Python 3.8 or above.
--fetch-missing-python
Whether to fetch a standalone python build from GitHub if the specified python version is not
found locally on the system.
COMMAND'pipxupgrade-all'
usage: pipx upgrade-all [-h] [--quiet] [--verbose] [--global]
[--include-injected] [--skip SKIP [SKIP ...]]
[--force]
Upgrades all packages within their virtual environments by running 'pip install --upgrade PACKAGE'
OPTIONS'pipxupgrade-all'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--include-injected
Also upgrade packages injected into the main app's environment
--skipSKIP[SKIP...]
skip these packages
--force, -f
Modify existing virtual environment and files in PIPX_BIN_DIR and PIPX_MAN_DIR
COMMAND'pipxupgrade-shared'
usage: pipx upgrade-shared [-h] [--quiet] [--verbose] [--global]
[--pip-args PIP_ARGS]
Upgrade shared libraries.
OPTIONS'pipxupgrade-shared'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--pip-argsPIP_ARGS
Arbitrary pip arguments to pass directly to pip install/upgrade commands
COMMAND'pipxuninstall'
usage: pipx uninstall [-h] [--quiet] [--verbose] [--global] package
Uninstalls a pipx-managed Virtual Environment by deleting it and any files that point to its apps.
packageOPTIONS'pipxuninstall'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
COMMAND'pipxuninstall-all'
usage: pipx uninstall-all [-h] [--quiet] [--verbose] [--global]
Uninstall all pipx-managed packages
OPTIONS'pipxuninstall-all'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
COMMAND'pipxreinstall'
usage: pipx reinstall [-h] [--quiet] [--verbose] [--global] [--python PYTHON]
[--fetch-missing-python]
package
Reinstalls a package.
Package is uninstalled, then installed with pipx install PACKAGE with the same options used in the
original install of PACKAGE.
packageOPTIONS'pipxreinstall'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--pythonPYTHON
Python to install with. Possible values can be the executable name (python3.11), the version of an
available system Python or to pass to py launcher (3.11), or the full path to the executable.
Requires Python 3.8 or above.
--fetch-missing-python
Whether to fetch a standalone python build from GitHub if the specified python version is not
found locally on the system.
COMMAND'pipxreinstall-all'
usage: pipx reinstall-all [-h] [--quiet] [--verbose] [--global]
[--python PYTHON] [--fetch-missing-python]
[--skip SKIP [SKIP ...]]
Reinstalls all packages.
Packages are uninstalled, then installed with pipx install PACKAGE with the same options used in the
original install of PACKAGE. This is useful if you upgraded to a new version of Python and want all your
packages to use the latest as well.
OPTIONS'pipxreinstall-all'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--pythonPYTHON
Python to install with. Possible values can be the executable name (python3.11), the version of an
available system Python or to pass to py launcher (3.11), or the full path to the executable.
Requires Python 3.8 or above.
--fetch-missing-python
Whether to fetch a standalone python build from GitHub if the specified python version is not
found locally on the system.
--skipSKIP[SKIP...]
skip these packages
COMMAND'pipxlist'
usage: pipx list [-h] [--quiet] [--verbose] [--global] [--include-injected]
[--json | --short | --pinned | --skip-maintenance]
List packages and apps installed with pipx
OPTIONS'pipxlist'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--include-injected
Show packages injected into the main app's environment
--json Output rich data in json format.
--short
List packages only.
--pinned
List pinned packages only. Pass --include-injected at the same time to list injected packages that
were pinned.
--skip-maintenance
(deprecated) No-op
COMMAND'pipxinterpreter'
usage: pipx interpreter [-h] [--quiet] [--verbose] [--global]
{list,prune,upgrade} ...
Interact with interpreters managed by pipx
OPTIONS'pipxinterpreter'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
SUBCOMMANDS'pipxinterpreter'pipxinterpreterlist
List available interpreters
pipxinterpreterprune
Prune unused interpreters
pipxinterpreterupgrade
Upgrade installed interpreters to the latest available micro/patch version
COMMAND'pipxinterpreterlist'
usage: pipx interpreter list [-h]
List available interpreters
COMMAND'pipxinterpreterprune'
usage: pipx interpreter prune [-h]
Prune unused interpreters
COMMAND'pipxinterpreterupgrade'
usage: pipx interpreter upgrade [-h]
Upgrade installed interpreters to the latest available micro/patch version
COMMAND'pipxrun'
usage: pipx run [-h] [--quiet] [--verbose] [--global] [--no-cache] [--path]
[--pypackages] [--spec SPEC] [--python PYTHON]
[--fetch-missing-python] [--system-site-packages]
[--index-url INDEX_URL] [--editable] [--pip-args PIP_ARGS]
app ...
Download the latest version of a package to a temporary virtual environment, then run an app from it. The
environment will be cached and re-used for up to 14 days. This means subsequent calls to 'run' for the
same package will be faster since they can reuse the cached Virtual Environment.
In support of PEP 582 'run' will use apps found in a local __pypackages__ directory, if present. Please
note that this behavior is experimental, and acts as a companion tool to pythonloc. It may be modified or
removed in the future. See https://github.com/cs01/pythonloc.
app...
app/package name and any arguments to be passed to it
OPTIONS'pipxrun'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--no-cache
Do not reuse cached virtual environment if it exists
--path Interpret app name as a local path
--pypackages
Require app to be run from local __pypackages__ directory
--specSPEC
The package name or specific installation source passed to pip. Runs `pip install -U SPEC`. For
example `--spec mypackage==2.0.0` or `--spec git+https://github.com/user/repo.git@branch`
--pythonPYTHON
Python to install with. Possible values can be the executable name (python3.11), the version of an
available system Python or to pass to py launcher (3.11), or the full path to the executable.
Requires Python 3.8 or above.
--fetch-missing-python
Whether to fetch a standalone python build from GitHub if the specified python version is not
found locally on the system.
--system-site-packages
Give the virtual environment access to the system site-packages dir.
--index-urlINDEX_URL, -iINDEX_URL
Base URL of Python Package Index
--editable, -e
Install a project in editable mode
--pip-argsPIP_ARGS
Arbitrary pip arguments to pass directly to pip install/upgrade commands
COMMAND'pipxrunpip'
usage: pipx runpip [-h] [--quiet] [--verbose] [--global] package ...
Run pip in an existing pipx-managed Virtual Environment
package
Name of the existing pipx-managed Virtual Environment to run pip in
pipargs
Arguments to forward to pip command
OPTIONS'pipxrunpip'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
COMMAND'pipxensurepath'
usage: pipx ensurepath [-h] [--quiet] [--verbose] [--global] [--prepend]
[--force]
Ensure directory where pipx stores apps is in your PATH environment variable. Also if pipx was installed
via `pip install --user`, ensure pipx itself is in your PATH. Note that running this may modify your
shell's configuration file(s) such as '~/.bashrc'.
OPTIONS'pipxensurepath'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--prepend
Prepend directories to your PATH instead of appending. This is useful if you want to prioritize
pipx apps over system apps.
--force, -f
Add text to your shell's config file even if it looks like your PATH already contains paths to
pipx and pipx-install apps.
COMMAND'pipxenvironment'
usage: pipx environment [-h] [--quiet] [--verbose] [--global]
[--value VARIABLE]
Prints the names and current values of environment variables used by pipx, followed by internal pipx
variables which are derived from the environment variables and platform specific default values.
Available variables: PIPX_HOME, PIPX_GLOBAL_HOME, PIPX_BIN_DIR, PIPX_GLOBAL_BIN_DIR, PIPX_MAN_DIR,
PIPX_GLOBAL_MAN_DIR, PIPX_SHARED_LIBS, PIPX_DEFAULT_PYTHON, PIPX_FETCH_MISSING_PYTHON, USE_EMOJI,
PIPX_HOME_ALLOW_SPACE
OPTIONS'pipxenvironment'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.
--valueVARIABLE, -VVARIABLE
Print the value of the variable.
COMMAND'pipxcompletions'
usage: pipx completions [-h] [--quiet] [--verbose] [--global]
Print instructions on enabling shell completions for pipx
OPTIONS'pipxcompletions'--quiet, -q
Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging
levels. The count maxes out at 2.
--verbose, -v
Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging
levels. The count maxes out at 3.
--global
Perform action globally for all users.