Instalando ferramentas de linha de comando autônomas

Muitos pacotes fornecem aplicações de linha de comando. Exemplos deste tipo de aplicação são mypy, flake8, black e Pipenv.

Normalmente você deseja acessar essas aplicações de qualquer lugar no sistema, mas instalar pacotes e suas dependências no mesmo ambiente global pode causar conflitos de versão e quebrar as dependências que o sistema operacional tem nos pacotes Python.

pipx resolve isso criando um ambiente virtual para cada pacote, enquanto também garante que suas aplicações sejam acessíveis através de um diretório que está em seu $PATH. Isso permite que cada pacote seja atualizado ou desinstalado sem causar conflitos com outros pacotes e permite que você execute a aplicações com segurança de qualquer lugar.

Nota

pipx só funciona com Python 3.6+.

pipx é instalado com pip:

python3 -m pip install --user pipx
python3 -m pipx ensurepath
py -m pip install --user pipx
py -m pipx ensurepath

Nota

ensurepath garante que o diretório de aplicação está em seu $PATH. Você pode precisar reiniciar seu terminal para que as atualizações de caminho tenham efeito.

Agora você pode instalar pacotes com pipx install e executar as aplicações do pacote de qualquer lugar.

$ pipx install PACKAGE
$ PACKAGE_APPLICATION [ARGS]

Por exemplo:

$ pipx install cowsay
  installed package cowsay 2.0, Python 3.6.2+
  These binaries are now globally available
    - cowsay
done! ✨ 🌟 ✨
$ cowsay moo
  ___
< moo >
  ===
        \
         \
           ^__^
           (oo)\_______
           (__)\       )\/
               ||     ||
               ||----w |

Para ver uma lista de pacotes instalados com pipx e quais aplicações estão disponíveis, use pipx list:

$ pipx list
venvs are in /Users/user/.local/pipx/venvs
symlinks to binaries are in /Users/user/.local/bin
   package black 18.9b0, Python 3.6.2+
    - black
    - blackd
   package cowsay 2.0, Python 3.6.2+
    - cowsay
   package mypy 0.660, Python 3.6.2+
    - dmypy
    - mypy
    - stubgen
   package nox 2018.10.17, Python 3.6.2+
    - nox
    - tox-to-nox

Para atualizar ou desinstalar um pacote:

pipx upgrade PACKAGE
pipx uninstall PACKAGE

pipx pode ser atualizado ou desinstalado com pip:

python3 -m pip install --upgrade pipx
python3 -m pip uninstall pipx
py -m pip install --upgrade pipx
py -m pip uninstall pipx

pipx também permite que você instale e execute a versão mais recente de uma aplicação em um ambiente temporário e efêmero. Por exemplo:

pipx run cowsay moooo

Para ver a lista completa de comandos pipx oferece, execute:

pipx --help

Você pode aprender mais sobre pipx em https://pypa.github.io/pipx/.