Some tools you want to install globally, like poetry. You don't want to install them inside of every virtual environment. You would like to have each tool completely separate, but accessible from each virtual environment.

{shell}pipxdoes exactly that. It creates a new virtual environment, installs the CLI tool and its dependencies into that virtual environment, and adds it to Pythonpath to be accessible from everywhere.

Install pipx

brew install pipx
pipx ensurepath

Install (global) cli tools

We are restricting this to CLI tools, especially tools that might interact with virtual environments or be independent of the actual project. Normal packages, like {shell}numpyshould be installed inside of every virtual environment.

Poetry:

pipx install poetry