Por que você deve instalar aplicativos Python com pipx (e como começar)
Principais conclusões
- A instalação de aplicativos Python pode ser desafiadora devido a possíveis conflitos com pacotes do sistema, mas o pipx facilita isso criando ambientes virtuais e gerenciando dependências para você.
- Pipx é uma alternativa amigável ao pip que instala aplicativos em todo o sistema sem exigir privilégios sudo e ajuda a adicionar, atualizar ou remover aplicativos Python sem esforço.
- Com o pipx, você pode instalar aplicativos Python CLI, executá-los como comandos padrão do Linux e até mesmo desinstalá-los facilmente. É uma ferramenta conveniente para gerenciar e expandir sua biblioteca de aplicativos.
Existem muitos aplicativos Python CLI úteis por aí, mas a instalação nem sempre é tão fácil quanto parece. Vamos dar uma olhada em como o pipx pode facilitar a instalação e o gerenciamento deles.
Por que os aplicativos Python são complicados
A instalação de aplicativos Python pode ficar complicada rapidamente. Python é uma linguagem versátil e muitas vezes as primeiras pessoas a aprendem. Navegando no GitHub ou PyPI – o índice de pacotes Python – você pode encontrar vários aplicativos úteis junto com bibliotecas de programação. Desde que se tornou tão onipresente, muitas pessoas contribuem com código, junto com uma mistura de instruções para instalá-los.
A maioria das instruções de instalação diz para você instalar usando pip, o gerenciador de pacotes para python. Comparável ao apt e yum para Linux, ele usa PyPI como repositório e permite instalar bibliotecas para seu código, bem como aplicativos completos escritos em Python. No entanto, instalar software por meio da instância do pip que está no seu sistema pode causar conflitos com os pacotes que já pertencem e são gerenciados pelo seu gerenciador de pacotes regular. A maioria das distribuições Linux atualmente utiliza e depende de python e pacotes associados para executar funções do sistema operacional, e outros softwares principais geralmente dependem de versões específicas de certas bibliotecas.
Eu desencorajo fortemente a instalação de software no nível do sistema com sudo pip install porque isso pode causar conflitos com o gerenciador de pacotes do seu sistema e resultar em funcionalidade quebrada ou, na pior das hipóteses, em um sistema que não inicializa. Também não estou sozinho nisso, pois o RealPython e a documentação do virtualenv recomendam isso, e até mesmo os documentos oficiais do Python chamam a atenção para o problema.
Outra opção é instalar no nível do usuário com pip install --user, mas nem todo pacote funciona perfeitamente dessa maneira. As dependências ainda são instaladas em todo o sistema para esse usuário, o que também pode causar problemas.
A comunidade Python recomenda usar algo chamado ambiente virtual – muitas vezes chamado de venvs – para criar pastas isoladas que incluam todas as partes necessárias para um projeto funcionar, mas usá-las quando você não está familiarizado com o processo pode ser muito frustrante. especialmente se você estiver tentando criar scripts. Esses são apenas alguns dos desafios que os usuários podem enfrentar para fazer aplicativos Python funcionarem em seus sistemas.
pipx para o resgate
Para resolver nossos problemas, podemos usar um aplicativo chamado pipx. Esta é uma alternativa fácil de usar ao pip, voltada para usuários finais em vez de programadores. Ele cria os ambientes virtuais para você, instala as dependências e disponibiliza os programas em todo o sistema – tudo sem exigir privilégios sudo em seu sistema também. Ele também gerencia seus aplicativos python instalados para você, tornando mais fácil adicioná-los, atualizá-los ou removê-los conforme achar necessário.
Como o pipx não se destina a programadores, ele não oferece suporte a alguns dos recursos críticos que você deseja durante o desenvolvimento, como a instalação de pacotes editáveis para teste. Isso é estritamente para usuários!
Para instalar o pipx, a maneira mais direta é usar o gerenciador de pacotes do seu sistema. Primeiro, vamos garantir que os pacotes necessários estejam instalados. Se você estiver em uma distribuição baseada em Debian como o Ubuntu, poderá usar o apt.
sudo apt update && sudo apt install python3-venv python3-pip
Isso instalará os pacotes principais para ambientes virtuais e o gerenciador de pacotes pip. Muitas distribuições Linux terão estes pré-instalados, mas não todas. Crucialmente, as versões do Debian e do Ubuntu não garantem que esses pacotes serão pré-instalados, portanto, se você estiver nessas distros, deverá executar os comandos acima. Se você estiver em uma distribuição diferente, use o gerenciador de pacotes relevante, seja yum, pacman ou até mesmo brew.
A seguir, podemos instalar o próprio pacote pipx.
sudo apt install pipx
Por último, queremos ter certeza de que o pipx está conectado ao nosso caminho, para que os aplicativos instalados sejam iniciados da mesma forma que todos os outros. Só precisamos executar este comando pipx:
pipx ensurepath
Observe que não há sudo para este comando! Tudo funcionará no espaço do usuário, que é exatamente o que queremos para evitar mexer na instalação do Python do nosso sistema operacional.
Em algumas distros, como o Ubuntu, você pode receber uma mensagem informando que pode ser necessário fazer login novamente para que a alteração do caminho tenha efeito. No Rhino Linux, as coisas funcionaram imediatamente, mas no Ubuntu tive que sair e entrar novamente.
E é isso, o pipx está pronto para começar! Vamos dar uma olhada em como usá-lo com alguns aplicativos Python.
Instalando aplicativos Python CLI
Vamos instalar um aplicativo divertido chamado cowsay usando pipx.
pipx install cowsay
Você pode usar o aplicativo Python como se fosse um comando ou aplicativo padrão do Linux que instalamos. Nos bastidores, ele está sendo executado em seu próprio ambiente virtual e todas as dependências são separadas e mantidas longe de nosso sistema operacional principal.
Se você precisar executar um aplicativo apenas uma vez e não quiser se preocupar em instalar e desinstalar, o pipx possui um modo de execução que também cuida disso para você.
pipx run speedtest-cli
Você também pode fornecer argumentos para o aplicativo, para poder executar comandos específicos. Existem algumas ressalvas quanto à formatação, portanto, verifique a documentação oficial do pipx.
Você pode usar pipx para ver quais aplicativos Python instalados você instalou.
pipx list
Você pode ver que speedtest-cli não está instalado, mas cowsay ainda está presente em nosso sistema.
Você também pode desinstalar o aplicativo cowsay facilmente.
pipx uninstall cowsay
Onde o pipx realmente ajuda é no gerenciamento de aplicativos mais complexos. Por exemplo, você pode facilmente escrever scripts bash simples para iniciar e manter o aplicativo calibre-web para hospedar sua própria biblioteca de e-books, pois você pode tratá-lo como apenas mais um comando. Sem o pipx, os arquivos de serviço que você precisa escrever seriam muito mais complicados para alguém que não conhece Python e suas práticas de implantação.
Expanda sua biblioteca de aplicativos com pipx
Agora que você instalou o pipx, há uma grande variedade de novos programas disponíveis para você! Se você encontrar projetos no GitHub ou PyPI que deseja utilizar, o pipx pode simplificar a instalação e o uso deles em apenas um ou dois minutos.