venv (Python 3) e virtualenv (Python 2), consentono di gestire installazioni di pacchetti separate per diversi progetti.

[walter@Manjaro-hp Scrivania]$ mkdir project1
[walter@Manjaro-hp Scrivania]$ cd project1/
[walter@Manjaro-hp project1]$
[walter@Manjaro-hp project1]$ python
Python 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
import site
print(site.getusersitepackages())
[‘/usr/lib/python3.10/site-packages’] <—– Rappresenta il percorso di sistema contenente le librerie che vengono installate.
Installiamo tramite il comando dalla shell la libreria “virtualenv”: pip install virtualenv
Verifichiamo:
[walter@Manjaro-hp project1]$ virtualenv –version
virtualenv 20.14.1 from /home/walter/.local/lib/python3.10/site-packages/virtualenv/init.py
Una volta installata la libreria possiamo creare il nostro ambiente virtuale da personalizzare sulla base dei progetti che vogliamo gestire tramite virtualenv:
[walter@Manjaro-hp project1]$ virtualenv venv
L’output dovrebbe essere il seguente:
created virtual environment CPython3.10.4.final.0-64 in 321ms
creator CPython3Posix(dest=/home/walter/Scrivania/project1/venv, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/walter/.local/share/virtualenv)
added seed packages: pip==22.0.4, setuptools==62.1.0, wheel==0.37.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Una volta eseguito il comand virtualenv creerà una cartella con il nome venv contenente l’ambiente, ma non sarà ancora attivo.
Per attivarlo dobbiamo eseguire il file “activate”, contenuto all’interno della cartella venv/bin/.
[walter@Manjaro-hp project1]$ . venv/bin/activate
Noteremo che la parte iniziale della nostra shell verrà modificata con il nome della cartella contenente il nostro ambiente virtuale tra parentesi tonde:
(venv) [walter@Manjaro-hp project1]$
Per verificare che l’ambiente è in esecuzione:
(venv) [walter@Manjaro-hp project1]$ python
Python 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
import site
print(site.getusersitepackages()) <——- Eseguiamo nuovamente un print per verificare il path
/home/walter/.local/lib/python3.10/site-packages <——- percorso restituito
In questo caso il percorso contenente le librerie sarà quello del nostro ambiente virtuale e tutte le librerie che andremo ad aggiungere verranno installate all’interno di questo isolando di fatto l’ambiente di sistema.





