Come creare e gestire gli ambienti virtuali di Python

Come creare e gestire gli ambienti virtuali di Python
È abbastanza comune vedere gli sviluppatori di Python che installano e aggiornano i pacchetti da fonti standard e non standard per sviluppare applicazioni. I motivi potrebbero variare dall'utilizzo di una versione più recente di un modulo all'utilizzo di una versione specifica nel caso in cui vi sia una regressione.

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

Cos'è un ambiente virtuale Python?

Un ambiente virtuale Python è un albero di directory autonomo che contiene una specifica installazione di Python 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 è un sandbox separato, quindi puoi creare tutti gli ambienti virtuali che desideri.

Creare e gestire ambienti virtuali

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

$ sudo apt install python3-ve

Ora puoi creare ambienti virtuali eseguendo il comando:

$ 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, puoi sostituire "Python3" sopra con il percorso completo della posizione della tua alternativa Python Binaria.

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

$ source myenv/bin/attiva

Una volta attivato l'ambiente virtuale, il prompt di shell cambierà per riflettere l'attuale ambiente virtuale che si sta utilizzando. Se corri “sys.Comando percorso ”all'interno dell'interprete di Python, puoi vedere che l'ambiente virtuale funziona correttamente. Python ora cercherà pacchetti all'interno dell'ambiente personalizzato che hai appena creato.

Se il prompt della shell non mostra il nome dell'ambiente virtuale come prefisso, qualsiasi file Python che eseguirà invece utilizzerà System Python. Quindi è necessario procurarsi un ambiente virtuale prima di eseguire un file nel tuo ambiente personalizzato.

È possibile disattivare un ambiente virtuale eseguendo il comando:

$ deactivate

Ogni ambiente virtuale di Python include un "Pyvenv.File CFG "con un tasto" Include-System-Site Packages "che è impostato su" False "per impostazione predefinita. Questa chiave indica l'ambiente virtuale se utilizzare i pacchetti di siti di sistema o no. Se impostato su "True", Python in Virtual Environment esaminerà i pacchetti di sistema nel caso in cui un pacchetto non venga trovato nell'ambiente virtuale. Renderà inoltre tutti i pacchetti installati di sistema importabili all'interno dell'ambiente virtuale.

Per eliminare un ambiente virtuale, devi solo eliminare la directory dell'ambiente virtuale e sparirà.

È possibile creare e archiviare VirtualEnv su unità USB esterna. Dovrai essere formattato dall'unità USB in NTFS o File System. Il file system FAT32 non supporta Symlinks, che è un requisito per gli ambienti virtuali per funzionare.

Utilizzo del gestore pacchetti PIP per installare i pacchetti all'interno dell'ambiente virtuale

All'interno di un ambiente virtuale, è possibile utilizzare i pacchetti di pacchetti PIP per installare, aggiornare e disinstallare i pacchetti. È possibile eseguire il downgrade o aggiornare un pacchetto specificando un particolare numero di versione.

È possibile installare un pacchetto utilizzando PIP eseguendo il comando (sostituire Pygame con il nome del pacchetto desiderato):

$ pip Installa Pygame

Un repository ricercabile di pacchetti PIP può essere trovato qui.

Per disinstallare un pacchetto, utilizzare il comando:

$ PIP Disinstalla Pygame

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

$ pip Installa Pygame ==

Per eseguire il downgrade o aggiornare a una versione specifica, utilizzare il comando (sostituire “1.9.5 "con il numero di versione desiderato):

$ pip Installa Pygame == 1.9.5

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

$ PIP Installa -Aggiorna Pygame

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

$ PIP Elenco

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

$ PIP Freeze> Requisiti.TXT

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

$ PIP Installa -R Requisiti.TXT

Utilizzo di ambienti virtuali Python con applicazioni non Python

Le applicazioni scritte in altri linguaggi di programmazione possono essere sandbox in ambienti virtuali di Python fintanto che PIP o qualsiasi altro gestore di pacchetti Python fornisce binari e pacchetti per questi linguaggi di programmazione alternativi/framework.

Ecco un piccolo esempio che spiega l'installazione del nodo.JS in Python Virtual Environment. Esegui i seguenti comandi uno per uno:

$ python3 -m venv my_node_env
$ source my_node_env/bin/attiva
$ pip installa ruota
$ pip installa nodeenv
$ nodeenv -p
$ nodeenv -version
$ nodo -version

Una volta fatto, avrai un nodo completamente isolato.ambiente JS. Puoi creare tutti gli ambienti virtuali che desideri per un nodo diverso.Applicazioni JS. I pacchetti installati tramite pacchetti NPM saranno limitati solo all'ambiente virtuale attivato.

Conclusione

La creazione di un ambiente virtuale Python è un modo eccellente per contenerere 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 di casa e radice e gli ambienti virtuali rendono così facile mantenerle.