Move installation

Relocate your pipx directory to a new location and rebuild the environments there.

The snippets below move from a non-default location to the current default. To move somewhere else, replace the NEW_LOCATION value. For which paths pipx defaults to and why they moved, see platformdirs migration.

Warning

These snippets delete the cache, log, and trash directories (pipx recreates them) and move PIPX_HOME. Run pipx reinstall-all afterward so every environment rebuilds at the new location.

macOS

Current default location: ~/Library/Application Support/pipx.

cache_dir=$(pipx environment --value PIPX_VENV_CACHEDIR)
logs_dir=$(pipx environment --value PIPX_LOG_DIR)
trash_dir=$(pipx environment --value PIPX_TRASH_DIR)
home_dir=$(pipx environment --value PIPX_HOME)
NEW_LOCATION='~/Library/Application Support/pipx'
rm -rf "$cache_dir" "$logs_dir" "$trash_dir"
mkdir -p "$NEW_LOCATION" && mv "$home_dir" "$NEW_LOCATION"
pipx reinstall-all

Linux

Current default location: ~/.local/share.

cache_dir=$(pipx environment --value PIPX_VENV_CACHEDIR)
logs_dir=$(pipx environment --value PIPX_LOG_DIR)
trash_dir=$(pipx environment --value PIPX_TRASH_DIR)
home_dir=$(pipx environment --value PIPX_HOME)
NEW_LOCATION="${XDG_DATA_HOME:-$HOME/.local/share}"
rm -rf "$cache_dir" "$logs_dir" "$trash_dir"
mkdir -p "$NEW_LOCATION" && mv "$home_dir" "$NEW_LOCATION"
pipx reinstall-all

Windows

Current default location: ~/pipx.

$NEW_LOCATION = Join-Path "$HOME" 'pipx'
$cache_dir = pipx environment --value PIPX_VENV_CACHEDIR
$logs_dir = pipx environment --value PIPX_LOG_DIR
$trash_dir = pipx environment --value PIPX_TRASH_DIR
$home_dir = pipx environment --value PIPX_HOME

Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$cache_dir", "$logs_dir", "$trash_dir"

# Remove the destination first so Move-Item renames rather than nests
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$NEW_LOCATION"

Move-Item -Path $home_dir -Destination "$NEW_LOCATION"
pipx reinstall-all

To move it from git-bash or WSL instead, follow the macOS/Linux steps and set NEW_LOCATION to the Windows path.

Verify it

$ pipx environment --value PIPX_HOME
$ pipx list

The home path reflects the new location and every environment lists cleanly after the reinstall.