Migrare un ambiente Python venv su una nuova macchina

Python Venv è un modulo python che permette di attivare un ambiente python separato rispetto a quello di sistema. In questo modo possiamo installare una serie di librerie o fare delle configurazione ad-hoc che restano relative solo ad un progetto. Utile per fare dei test senza “sporcare” l’ambiente python di sistema oppure per gestire differenti progetti con differenti librerie. Ci sono anche altri sistemi similari, ma venv è sicuramente tra i più diffusi.

Partiamo intanto vedendo come si crea un ambiente venv:

python3 -m venv ambiente_venv

questo crea nella cartella chiamata ambiente_venv il nostro ambiente di sviluppo. All’interno di questa cartella vengono create una serie di altre cartelle (es bin, lib) con quello che ci occorre. Una volta creato l’ambiente bisogna attivarlo e questo si fa scrivendo:

cd ambiente_venv
source bin/activate

mentre per uscire basterà digitare:

deactivate

Nota: Ovviamente possiamo anche eseguire gli script python direttamente scrivendo bin/python3 in modo da avviare automaticamente l’ambiene per lo script richiamato.

A questo punto ipotizziamo di aver installato una serie di librerie e che sia necessario replicare questo ambiene su una seconda macchina. Sulla prima macchina scriviamo:

pip freeze > requirements.txt

se abbiamo prima attivato l’ambiente, oppure direttamente:

bin/pip freeze > requirements.txt

e questo creerà il classico file requirements.txt con l’elenco delle librerie installate. Ora creiamo l’ambiene venv nella seconda macchina con:

python3 -m venv ambiente_venv

poi copiamo il file requirements.txt dalla prima alla seconda macchina, attiviamo l’ambiente venv:

cd ambiente_venv
source bin/activate

ed infine reinstalliamo tutte le librerie necessarie:

pip install -r requirements.txt

enjoy!

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta