Contents

Como corrigir o erro pip "externally-managed-environment" no Linux

Se trabalha frequentemente com Python e mudou recentemente para o Ubuntu 23.04 ou para a versão 38 do Fedora, é provável que se tenha deparado com o erro “externally-managed-environment” ao instalar pacotes com o gestor de pacotes Python, pip.

Pode ser uma fonte de frustração encontrar um problema que não se apresentava em iterações anteriores de sistemas operativos como o Ubuntu e o Fedora. Compreender a causa raiz deste problema e encontrar uma resolução rápida será a chave para resolver o assunto de forma eficaz.

Porque é que o erro “externally-managed-environment” ocorre

/pt/images/pip-externally-managed-error.jpeg

As iterações mais recentes de todas as distribuições Linux adoptaram as especificações delineadas no PEP, o que resultou numa alteração ao comportamento de instalação dos pacotes pip, de tal forma que estes já não são instalados num âmbito global por defeito.

Isto foi implementado numa tentativa de evitar conflitos entre o gestor de pacotes da distribuição e as ferramentas de gestão de pacotes Python. Você pode aprender sobre os detalhes na documentação oficial do PEP-668 . Se desejar reverter ou sobrepor este mecanismo, pode adotar três abordagens.

Excluir o arquivo “EXTERNALLY-MANAGED”

/pt/images/deleting-externally-managed-file.jpeg

Para resolver o problema de um pacote gerenciado externamente na biblioteca Pip, pode-se seguir um procedimento simples navegando até o diretório localizado em “/usr/lib/python3.xx” e excluindo o arquivo “EXTERNALLY-MANAGED” dentro desse diretório. Os passos específicos para realizar esta tarefa envolvem a execução dos seguintes comandos:

 cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED 

Para resolver o problema e restabelecer a funcionalidade em falta, siga estes passos:1. Utilize o comando ’touch’ para gerar novamente o ficheiro de configuração necessário. Isto pode ser feito escrevendo “touch /etc/systemd/system/multi-user.target.wants/sleep.override” no seu terminal.2. Verifique se o ficheiro foi criado com sucesso, verificando a sua presença utilizando o comando “ls -l /etc/systemd/system/multi-user.target.wants/”. O ficheiro deve agora aparecer como um ficheiro normal com permissões de leitura para o proprietário e o grupo.

 sudo touch EXTERNALLY-MANAGED 

Deve agora experimentar um processo de instalação suave quando utilizar o pip ou o pip3.

Use Ambientes Virtuais para Instalar Pacotes pip

Uma estratégia alternativa envolve a utilização de ambientes virtuais como um meio eficaz de segregar dependências específicas de programação do sistema operacional subjacente e, ao mesmo tempo, facilitar a organização ordenada do projeto.

Para estabelecer um ambiente virtual e instalar pacotes usando pip, siga estes passos:

⭐ Primeiro, crie o ambiente virtual com:

 python3 -m venv venv 

⭐ Obtenha o arquivo activate dentro do diretório bin usando o comando source:

 source venv/bin/activate 

Atualizar o prompt do shell com o nome do ambiente virtual permite que você instale uma infinidade de pacotes Python que atendam aos seus desejos, melhorando assim a sua experiência de desenvolvimento.

/pt/images/using-venv-solves-the-externally-managed-error.jpeg

Na tentativa inicial, a instalação do pacote OpenAI Python encontrou dificuldades; no entanto, após a criação e ativação de um ambiente virtual, o processo de instalação foi executado sem problemas.

Utilizar o pipx para instalar pacotes Python

/pt/images/installing-packages-with-pix.jpeg

O PipX serve como uma ferramenta eficiente para implementar bibliotecas Python em configurações virtualizadas ou sequestradas, simplificando processos como a criação de ambientes virtuais adaptados a pacotes individuais e o estabelecimento de ligações simbólicas entre estes pacotes e os seus ficheiros binários correspondentes localizados no diretório .local/bin do utilizador. Isto permite aos utilizadores aceder e utilizar qualquer pacote instalado através do PipX diretamente a partir da sua interface de linha de comandos em qualquer altura.

O uso do pipx para instalação de pacotes oferece uma solução para o problema dos erros de “ambiente gerenciado externamente”, instalando pacotes em ambientes virtuais. Para utilizar o pipx, comece por instalá-lo através do gestor de pacotes predefinido do seu sistema operativo.

Em derivados do Ubuntu/Debian:

 sudo apt-get install pipx 

Em sistemas baseados no Arch:

 sudo pacman -S pipx 

No Fedora/CentOS/RHEL:

 sudo dnf install pipx 

Após a instalação do pipX, pode-se usá-lo de maneira análoga à utilização do pip para instalação de pacotes. Por exemplo, considere o seguinte comando ilustrativo:

 pipx install openai 

Para mais informações sobre o pipx, é altamente recomendável consultar sua página de manual utilizando o comando “man”.

Agora já sabe como resolver o erro “externally-managed”

Depois de resolver com sucesso o problema relativo a um ambiente gerido externamente, pode retomar o trabalho no seu projeto ou envolver-se em sessões de prática mais extensas envolvendo a utilização de Python como linguagem de programação primária. Para aqueles que têm objectivos mais amplos, que englobam tanto o desenvolvimento pessoal como a diversão, pode valer a pena explorar abordagens alternativas para adquirir proficiência em Python ou noutras linguagens através de métodos de gamificação, que proporcionam experiências imersivas e gratificantes ao incorporar elementos de design de jogos no processo de aprendizagem.