Come creare e gestire ambienti-virtuali-python

Come creare e gestire ambienti-virtuali-python

È abbastanza comune vedere gli sviluppatori di Python che installano e aggiornano pacchetti da fonti standard e non standard per sviluppare applicazioni

I motivi potrebbero variare dall’uso di una versione più recente di un modulo all’utilizzo di una versione specifica in caso di regressione.

Questi requisiti e casi d’uso possono essere un problema da gestire quando applicazioni diverse richiedono versioni diverse della stessa libreria. Per fortuna, Python offre una soluzione affidabile per isolare gli ambienti di sviluppo utilizzando ambienti virtuali.

Che cos’è un ambienti-virtuali-python?

Un ambiente virtuale Python è un albero di directory autonomo che contiene un’installazione Python specifica insieme a tutte le sue librerie standard. Le applicazioni che richiedono una versione particolare della libreria possono essere isolate in questi ambienti virtuali senza inquinare il sistema o altre implementazioni di Python. Ogni ambiente virtuale è una sandbox separata, quindi puoi creare quanti ambienti virtuali desideri.

Creazione e gestione di ambienti-virtuali-python

Per creare ambienti virtuali in Ubuntu, installare innanzitutto il pacchetto di dipendenza richiesto eseguendo il comando:

Terminale
  • sudo apt install python3-venv

Ambienti-virtuali-python

Ora puoi creare ambienti virtuali eseguendo il comando:

Terminale
  • python3 -m venv myenv

L’esecuzione del comando sopra creerà un ambiente virtuale chiamato “myenv” nella tua home directory. Se si desidera utilizzare qualsiasi altra versione di Python, è possibile sostituire “python3” sopra con il percorso completo della posizione del file binario Python alternativo.

Per attivare l’ambiente personalizzato creato sopra, eseguire il comando:

Terminale
  • source myenv/bin/activate

Una volta attivato l’ambiente virtuale, il prompt della shell cambierà per riflettere l’ambiente virtuale corrente che si sta utilizzando. Se si esegue il comando “sys.path” all’interno dell’interprete Python, è possibile vedere che l’ambiente virtuale funziona correttamente. Python ora cercherà i pacchetti all’interno dell’ambiente personalizzato appena creato.

Se il prompt della shell non mostra il nome dell’ambiente virtuale come prefisso, qualsiasi file Python eseguito utilizzerà invece il sistema Python. Pertanto è necessario eseguire il source dell’ambiente virtuale prima di eseguire un file nel proprio ambiente personalizzato.

Potete disattivare un ambiente virtuale con questo comando:

Terminale
  • deactivate

Ogni ambiente virtuale Python include un file “pyvenv.cfg” con una chiave “include-system-site-pacchetti” che per impostazione predefinita è impostata su “false“. Questa chiave indica all’ambiente virtuale se utilizzare o meno i pacchetti del sito di sistema. Se impostato su “true“, Python in ambiente virtuale esaminerà i pacchetti di sistema nel caso in cui un pacchetto non venga trovato nell’ambiente virtuale. Inoltre renderà improbabili tutti i pacchetti installati dal sistema all’interno dell’ambiente virtuale.

Per eliminare un ambiente virtuale, devi solo eliminare la directory dell’ambiente virtuale.

Potete creare e archiviare virtualenv su unità USB esterne. Dovete disporre di un’unità USB formattata nel file system NTFS o EXT. Il file system FAT32 non supporta i collegamenti simbolici che sono requisiti per il funzionamento degli ambienti virtuali.

Utilizzo di Pip Package Manager per installare i pacchetti all’interno dell’ambiente virtuale

All’interno di un ambiente virtuale, potete utilizzare il gestore pacchetti pip per installare, aggiornare e disinstallare i pacchetti. Potete effettuare il downgrade o l’aggiornamento di un pacchetto specificando un determinato numero di versione.

Puoi installare un pacchetto usando pip eseguendo il comando (sostituisci pygame con il nome del pacchetto desiderato):

Terminale
  • pip install pygame

Un repository ricercabile di pacchetti pip è disponibile qui.

Per disinstallare un pacchetto, utilizzare il comando:

Terminale
  • pip uninstall pygame

Per vedere tutte le versioni di un pacchetto, eseguire il comando:

Terminale
  • pip install pygame==
[/su_box

Per eseguire il downgrade o l’aggiornamento per una specifica versione, utilizzate il comando (sostituire “1.9.5” con il numero di versione desiderato):

Terminale
  • pip install pygame==1.9.5

Per aggiornare un pacchetto alla versione più recente, eseguire il comando:

Terminale
  • pip install –upgrade pygame

Per vedere tutti i pacchetti installati in ambiente virtuale, eseguire il comando:

Terminale
  • pip list

Per salvare un elenco di pacchetti installati all'interno di virtualenv, eseguire il comando:

Terminale
  • pip freeze > requirements.txt

Ambienti virtuali

È possibile utilizzare il file "Request.txt" sopra per installare i pacchetti in blocco. Un caso d'uso è duplicare un ambiente esistente installando tutti i pacchetti da zero. Per installare pacchetti pip in blocco, eseguire il comando:

Terminale
  • pip install -r requirements.txt

Uso di ambienti virtuali Python con applicazioni non Python

Le applicazioni scritte in altri linguaggi di programmazione possono essere sandbox in ambienti virtuali Python purché pip o qualsiasi altro gestore pacchetti Python fornisca binari e pacchetti per questi linguaggi / framework di programmazione alternativi.

Ecco un piccolo esempio che spiega l'installazione di Node.js nell'ambiente virtuale Python. Esegui i seguenti comandi uno per uno:

Terminale
  • python3 -m venv my_node_env
  • source my_node_env/bin/activate
  • pip install wheel
  • pip install nodeenv
  • nodeenv -p
  • nodeenv –version
  • node –version

Una volta fatto, avrai un ambiente Node.js completamente isolato. È possibile creare tutti gli ambienti virtuali desiderati per diverse applicazioni Node.js. I pacchetti installati tramite npm Package Manager saranno limitati solo all'ambiente virtuale attivato.

Conclusione

La creazione di un ambiente virtuale Python è un modo eccellente per containerizzare gli ambienti di sviluppo. Ogni ambiente virtuale ha il suo binario Python e il suo set indipendente di pacchetti. Lo sviluppo di più applicazioni Python sullo stesso sistema può inquinare rapidamente la tua directory home e root e gli ambienti virtuali rendono così facile la loro manutenzione.

Guarda anche:

pycharm-programmare-python

python-dash-crea-grafici

Grazie! per l’utilizzo della Guida di Linuxiano.

Trovi questo tutorial utile? Condividi con i tuoi amici per tenerlo in vita.
Sii il primo a commentare, apprezzo i tuoi suggerimenti. Per ulteriori domande potete commentare qui sotto.

 

Lascia un commento