Pular para o conteúdo

    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

    Terminal
    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

    Terminal
    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:

    Terminal
    pipx run ruff --version
    

    Para escolher a versão do Python que a ferramenta usa:

    Terminal
    pipx install --python 3.13 ruff
    

    Para adicionar um plugin ao ambiente de uma ferramenta já instalada, use pipx inject:

    Terminal
    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:

    ambiente/cap05_pipx.pylinhas 10 a 15
    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}")
    
    Saída
    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 ruff equivale a pipx install ruff, e uvx equivale a pipx run. Se você adotar o uv (capítulo 7), pode dispensar o pipx.