Skip to content

Configure Paths

Installation Options

The default binary location for pipx-installed apps is ~/.local/bin. This can be overridden with the environment variable PIPX_BIN_DIR. The default manual page location for pipx-installed apps is ~/.local/share/man. This can be overridden with the environment variable PIPX_MAN_DIR. If the --global option is used, the default locations are /usr/local/bin and /usr/local/share/man respectively and can be overridden with PIPX_GLOBAL_BIN_DIR and PIPX_GLOBAL_MAN_DIR.

pipx's default virtual environment location is typically ~/.local/share/pipx on Linux/Unix, ~/.local/pipx on macOS and ~\pipx on Windows. For compatibility reasons, if ~/.local/pipx on Linux, %USERPROFILE%\AppData\Local\pipx or ~\.local\pipx on Windows or ~/Library/Application Support/pipx on macOS exists, it will be used as the default location instead. This can be overridden with the PIPX_HOME environment variable. If the --global option is used, the default location is always /opt/pipx and can be overridden with PIPX_GLOBAL_HOME.

In case one of these fallback locations exist, we recommend either manually moving the pipx files to the new default location (see the Moving your pipx installation section of the docs), or setting the PIPX_HOME environment variable (discarding files existing in the fallback location).

As an example, you can install global apps accessible by all users on your system with either of the following commands (on MacOS, Linux, and Windows WSL):

sudo PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin PIPX_MAN_DIR=/usr/local/share/man pipx install <PACKAGE>
# or shorter (with pipx>=1.5.0)
sudo pipx install --global <PACKAGE>

Note

After version 1.2.0, the default pipx paths have been moved from ~/.local/pipx to specific user data directories on each platform using platformdirs library

Old Path New Path
~/.local/pipx/.trash platformdirs.user_data_dir()/pipx/trash
~/.local/pipx/shared platformdirs.user_data_dir()/pipx/shared
~/.local/pipx/venvs platformdirs.user_data_dir()/pipx/venvs
~/.local/pipx/.cache platformdirs.user_cache_dir()/pipx
~/.local/pipx/logs platformdirs.user_log_dir()/pipx/log

user_data_dir(), user_cache_dir() and user_log_dir() resolve to appropriate platform-specific user data, cache and log directories. See the platformdirs documentation for details.

This was reverted in 1.5.0 for Windows and macOS. We heavily recommend not using these locations on Windows and macOS anymore, due to multiple incompatibilities discovered with these locations, documented here.

Customising your installation

--global argument

The --global flag installs applications into a system-wide location accessible to all users. It must be placed after the subcommand, not before it:

# correct
sudo pipx install --global pycowsay
sudo pipx list --global

# wrong (--global is silently ignored when placed before the subcommand)
sudo pipx --global install pycowsay

Default global paths are /usr/local/bin for binaries, /usr/local/share/man for man pages, and /opt/pipx for virtual environments. Override them with PIPX_GLOBAL_BIN_DIR, PIPX_GLOBAL_MAN_DIR, and PIPX_GLOBAL_HOME. Run sudo pipx ensurepath --global to add the global binary directory to the system PATH.

The --global flag is not supported on Windows.

--prepend argument

The --prepend argument can be passed to the pipx ensurepath command to prepend the pipx bin directory to the user's PATH environment variable instead of appending to it. This can be useful if you want to prioritise pipx-installed binaries over system-installed binaries of the same name.

Configuring pip for pipx

pipx uses pip internally for all package installs, including its own shared libraries (pip, setuptools). To point pip at a private index or pass custom options, set PIP_* environment variables. pipx forwards them to every pip invocation.

For example, to use a private package index:

export PIP_INDEX_URL=https://my-private-index.example.com/simple/
export PIP_TRUSTED_HOST=my-private-index.example.com
pipx install my-private-package

These variables also apply when pipx upgrades its shared libraries (pipx upgrade-shared). You can set them permanently in your shell profile or in pip's own config file (pip.conf / pip.ini). See the pip configuration documentation for details.

Per-command pip options can be passed with --pip-args:

pipx install my-package --pip-args='--no-cache-dir --trusted-host=my-host'