Como corrigir o erro pip “ambiente gerenciado externamente” no Linux

Se você trabalha frequentemente com Python e recentemente mudou para Ubuntu 23.04 ou Fedora versão 38, é provável que você tenha se deparado com o erro “ambiente gerenciado externamente” ao instalar pacotes com o gerenciador de pacotes Python, pip.

Isso pode ser frustrante e bastante surpreendente, pois esse erro nunca aparecia nas versões mais antigas do Ubuntu, Fedora e outras distribuições. Vamos aprender exatamente o que está causando esse erro e como você pode corrigi-lo rapidamente.

Por que ocorre o erro “ambiente gerenciado externamente”

As versões mais recentes de todas as distribuições Linux estão adotando os padrões definidos no PEP-668. Essas mudanças garantem que os pacotes pip não serão instalados em um contexto global por padrão.

  10 melhores firewalls para Linux para proteção eficaz do sistema [2023]

Isso foi implementado na tentativa de evitar conflitos entre o gerenciador de pacotes da distribuição e as ferramentas de gerenciamento de pacotes Python. Você pode aprender mais sobre os detalhes no documentação oficial PEP-668. Se desejar reverter ou substituir esse mecanismo, você pode adotar três abordagens.

1. Exclua o arquivo “GERENCIADO EXTERNAMENTE”

Esta é a solução mais simples para o erro pip “gerenciado externamente”. Tudo que você precisa fazer é navegar até /usr/lib/python3.xx e excluir o arquivo EXTERNALLY-MANAGED no diretório. Aqui estão os comandos para fazer isso:

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

Isso é tudo que você precisa fazer para corrigir o erro. Se você optar por restaurar esse mecanismo, crie o mesmo arquivo novamente com o comando touch:

 sudo touch EXTERNALLY-MANAGED 

Agora você deve conseguir instalar pacotes perfeitamente com pip ou pip3.

2. Use ambientes virtuais para instalar pacotes pip

Outra abordagem que você pode adotar é usar ambientes virtuais para seu projeto Python. Os ambientes virtuais são uma ótima maneira de isolar pacotes específicos de programas do sistema operacional e também permitem que você organize seu projeto de maneira organizada.

  Como alterar as configurações de DNS no Linux

Veja como criar um ambiente virtual e instalar pacotes com pip:

  • 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 
  • O prompt do shell deve ser atualizado com o nome do ambiente virtual. Agora você poderá instalar qualquer pacote Python que desejar.

    Como você pode ver, o pacote openai Python não pôde ser instalado inicialmente, mas depois de criar e mudar para um ambiente virtual, ele foi instalado perfeitamente.

    3. Use pipx para instalar pacotes Python

    pipx é um utilitário para instalação de pacotes Python em ambientes virtuais e isolados. Ele automatiza etapas como a criação de ambientes virtuais para cada pacote e a criação de links simbólicos para os pacotes na pasta .local/bin para que você possa chamar cada pacote do shell a qualquer momento.

      Como obter monitoramento de rede em tempo real no Linux com Netdata

    Usar pipx para instalar pacotes ajuda a evitar o erro de “ambiente gerenciado externamente” ao instalar pacotes em ambientes virtuais. Para usar o pipx, primeiro instale-o com o gerenciador de pacotes padrão da sua distribuição.

    Em derivados do Ubuntu/Debian:

     sudo apt-get install pipx 

    Em sistemas baseados em Arch:

     sudo pacman -S pipx 

    No Fedora/CentOS/RHEL:

     sudo dnf install pipx 

    Depois de instalar o pipx, use-o da mesma forma que usaria o pip para instalar pacotes. Aqui está um exemplo de comando:

     pipx install openai 

    Para saber mais sobre o pipx, você pode consultar sua página de manual usando o comando man.

    Agora você sabe como corrigir o erro “gerenciado externamente”

    Depois de corrigir o erro “ambiente gerenciado externamente”, você poderá continuar trabalhando em seu projeto ou praticando programação Python geral. Se você está focado neste último, você pode querer verificar as diferentes formas gamificadas de aprender programação que o ajudarão a aprender Python, ou qualquer linguagem muito mais rápida, de uma forma prática e gratificante.