Come correggere l’errore pip “ambiente gestito esternamente” su Linux

Foto dell'autore

By kair

Risolvere l’errore “ambiente gestito esternamente” di Pip su Linux

Se ti capita di utilizzare spesso Python e hai recentemente aggiornato a Ubuntu 23.04 o Fedora 38, è molto probabile che tu abbia incontrato l’errore “ambiente gestito esternamente” durante l’installazione di librerie con il gestore di pacchetti Python, pip.

Questo problema può risultare frustrante e sorprendente, poiché non si presentava nelle versioni precedenti di Ubuntu, Fedora e altre distribuzioni. Analizziamo le cause di questo errore e come risolverlo in modo rapido ed efficace.

Motivazioni dell’errore “ambiente gestito esternamente”

Le più recenti versioni delle distribuzioni Linux stanno progressivamente adottando gli standard definiti nel PEP-668. Queste modifiche implicano che, di default, i pacchetti pip non vengono installati in un contesto globale.

Tale implementazione mira a prevenire conflitti tra il gestore dei pacchetti della distribuzione e gli strumenti di gestione dei pacchetti Python. Per ulteriori dettagli, è possibile consultare la documentazione ufficiale del PEP-668. Se si desidera annullare o aggirare questo meccanismo, si possono seguire tre diverse strategie.

1. Eliminazione del File “EXTERNALLY-MANAGED”

Questa è la soluzione più semplice per risolvere l’errore “gestito esternamente” di pip. È sufficiente accedere alla directory /usr/lib/python3.xx ed eliminare il file EXTERNALLY-MANAGED. Ecco i comandi necessari:

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

Con questi passaggi, l’errore dovrebbe essere risolto. Se si desidera ripristinare il meccanismo di protezione, è possibile ricreare lo stesso file utilizzando il comando touch:

 sudo touch EXTERNALLY-MANAGED 

Ora, si dovrebbe essere in grado di installare pacchetti senza problemi tramite pip o pip3.

2. Utilizzo di Ambienti Virtuali per l’Installazione dei Pacchetti Pip

Un’altra opzione è quella di utilizzare ambienti virtuali per i progetti Python. Gli ambienti virtuali sono uno strumento eccellente per isolare i pacchetti specifici di un progetto dal sistema operativo, consentendo una migliore organizzazione.

Ecco come creare un ambiente virtuale e installare i pacchetti con pip:

  • Per prima cosa, creare l’ambiente virtuale con:
     python3 -m venv venv 
  • Successivamente, attivare l’ambiente virtuale tramite il file activate che si trova nella directory bin, utilizzando il comando source:
     source venv/bin/activate 

Il prompt della shell mostrerà il nome dell’ambiente virtuale. A questo punto, si possono installare tutti i pacchetti Python desiderati.

Come si può vedere, inizialmente non era possibile installare il pacchetto openai, ma dopo aver creato ed attivato l’ambiente virtuale, l’installazione è avvenuta senza problemi.

3. Impiego di pipx per l’Installazione dei Pacchetti Python

pipx è un’utility che consente l’installazione di pacchetti Python in ambienti virtuali e isolati. Questo strumento automatizza la creazione degli ambienti virtuali per ciascun pacchetto e la creazione di collegamenti simbolici ai pacchetti nella cartella .local/bin. In questo modo, ogni pacchetto può essere chiamato direttamente dalla shell.

L’utilizzo di pipx per installare i pacchetti evita l’errore “ambiente gestito esternamente”, poiché i pacchetti vengono installati in ambienti virtuali. Per utilizzare pipx, è necessario installarlo con il gestore pacchetti predefinito della propria distribuzione.

Per i derivati di Ubuntu/Debian:

 sudo apt-get install pipx 

Per i sistemi basati su Arch:

 sudo pacman -S pipx 

Per Fedora/CentOS/RHEL:

 sudo dnf install pipx 

Una volta installato pipx, il suo utilizzo è simile a quello di pip. Ecco un esempio di comando:

 pipx install openai 

Per maggiori informazioni, è possibile consultare la pagina man di pipx tramite il comando man.

Conclusioni e risoluzione dell’errore

Ora che hai risolto l’errore “ambiente gestito esternamente”, dovresti poter proseguire con i tuoi progetti o con l’apprendimento del linguaggio Python. Se sei interessato ad approfondire la programmazione, potresti voler considerare i diversi metodi gamificati di apprendimento, che possono aiutarti a padroneggiare Python o altri linguaggi in modo pratico e gratificante.