A cosa servono e come crearli.

Gli ambienti virtuali in python sono ambienti creati per poter installare le librerie necessarie per sviluppare un progetto, senza che vadano ad influire sugli altri progetti, o peggio ancora a danneggiare il sistema operativo principale se questo si basa su python.
Praticamente si crea un ambiente “isolato” dal sistema operativo principale dove possiamo scaricare tutte le librerie che ci servono e sopratutto in diverse versioni, senza intaccare gli altri progetti.
Gli ambienti virtuali si creano in modo diverso se ci si trova in ambiente linux o in ambiente vindows, vediamo come crearli nei due diversi S.O.
LINUX:
A apriamo una shell nella directori del progetto che in questo caso chiameremo MYPROJ
mio_pc: mkdir MYPROJ
mio_pc: cd MYPROJ
mio_pc:~/MYPROY$ python3 -m venv [nomeambiente] (es: myproj)
mio_pc:~/MYPROY$ python3 -m venv myproj
Con questo comando si creeranno l’ambiente virtuale generando una nuova serie di directory la principale che avra’ lo stesso nome di myproj e altre sottodirectory e files saranno:
bin, include, lib e due files : lib64 e pyvenv.cfg
A questo punto l’ambiente virtuale e’ pronto ma dovremmo attivarlo prima di poterlo utilizzare, l’attivazione si esegue dando il seguente comando nella directory dell’ambiente:
mio_pc:~/MYPROY/myproj$ source bin/activate
L’ambiente sara’ attivo e la conferma l’avremo in quanto nel prompt comarira’ tra parentesi il nome dell’ambiente virtuale:
(myproj) mio_pc:~/MYPROY/myproj$
Ora possiamo installare tutte le librerie che vogliamo senza andare ad intaccare quelle di sistema.
Se volessimo uscire dall’ambiente virtuale sara’ sufficente dare il comando deactivate in qualsiasi punto della consolle.
WINDOWS:
Per creare ambienti viruali python in windows la procedura e’ leggermente diversa ma il concetto e’ il medesimo. I comandi da dare, sempre dal promt, sono :
c:\>python -m venev [nomeambiente]
cd [nomeambiente]
c:\[nomeambiente]\Scripts\activate
Come si puo vedere cambia solamente il comando per attivare l’ambiente virtuale mente la disattivazione rimane uguale con deactivate