Capítulo 5, Ambiente
pipx: ferramentas de linha de comando isoladas
Aplicações como o ruff ou o poetry não são bibliotecas do seu projeto. O pipx instala cada uma no seu próprio ambiente e a deixa disponível em qualquer pasta.
Código deste capítulo: ambiente/cap05_pipx.py
Aplicação não é biblioteca
Uma biblioteca (requests, por exemplo) você usa dentro do seu código, então ela mora no venv do projeto. Uma ferramenta de linha de comando (ruff, poetry, httpie) você executa no terminal em qualquer lugar. Instalar isso com pip global polui o Python e causa conflito. O pipx cria um venv por ferramenta e expõe só o comando.
Instalação
brew install pipx
pipx ensurepath
O pipx ensurepath adiciona a pasta dos executáveis do pipx ao seu PATH. Feche e abra o terminal depois.
Uso no dia a dia
pipx install ruff
pipx list
pipx upgrade ruff
pipx upgrade-all
pipx uninstall ruff
Para rodar uma ferramenta uma única vez, sem instalar, use pipx run. Ela vive num ambiente temporário:
pipx run ruff --version
Para escolher a versão do Python que a ferramenta usa:
pipx install --python 3.13 ruff
Para adicionar um plugin ao ambiente de uma ferramenta já instalada, use pipx inject:
pipx inject poetry poetry-plugin-export
Quais ferramentas estão no seu PATH
O módulo shutil ajuda a ver, a partir do Python, o que está instalado e onde:
import shutil
for ferramenta in ["python3", "pipx", "uv", "poetry", "pyenv"]:
caminho = shutil.which(ferramenta)
situacao = f"instalado em {caminho}" if caminho else "não encontrado"
print(f"{ferramenta:8} {situacao}")
python3 instalado em /opt/homebrew/bin/python3
pipx instalado em /Users/ana/.local/bin/pipx
uv instalado em /Users/ana/.local/bin/uv
poetry instalado em /Users/ana/.local/bin/poetry
pyenv não encontrado
O bloco acima é um exemplo. A sua saída depende do que você instalou.
O uv faz o mesmo papel
O comando
uv tool install ruffequivale apipx install ruff, euvxequivale apipx run. Se você adotar o uv (capítulo 7), pode dispensar o pipx.