Virtualenv gebruiken in Python3
Virtualenv is een tool om een geïsoleerde Python omgeving te maken.
Deze omgeving heeft zijn eigen installatie directory die geen libraries deelt met andere virtuele omgevingen.
Verschil tussen virtualenv en venv
venv is een Python package dat standaard aanwezig is in Python3 (niet in Python2).
virtualenv is een python library die meer functionaliteiten biedt dan venv.
Via onderstaande link kan je zien wat de verschillen zijn tussen deze twee omgevingen:
Virtualenv installeren met behulp van pip3
We gaan er van uit dat Python3 is geïnstalleerd vanuit de source zoals beschreven in dit artikel.
Op het moment van schrijven is dit Python3.9.4. Je kan met onderstaand commando controleren welke versie Python actief is:
python3.9 -V
Met onderstaand commando kan je zien wat het pad is waar Python3.9 is geïnstalleerd:
which python3.9
In ons geval is dat /usr/local/bin/python3.9
We gaan nu eerst de package pip updaten. pip is de Python package installer.
python3.9 -m pip install --upgrade pip
Hierna kunnen we de virtualenv package gaan installeren:
pip3 install virtualenv
Virtuele Python omgeving maken
We kunnen nu een virtuele omgeving aanmaken met behulp van het commando virtualenv.
Let er op dat je ingelogd bent als de gebruiker waarvoor je de virtuele omgeving wilt maken.
In onderstaand voorbeeld log ik in vanuit de root console als de gebruiker alex:
sudo -su alex
En maak dan nu de virtuele omgeving aan met:
virtualenv -p /usr/local/bin/python3.9 /home/alex/pythonvenv
Je krijgt dan een vergelijkbare output te zien zoals hier onder:
alex@tux:~$ virtualenv -p /usr/local/bin/python3.9 /home/alex/pythonvenv
created virtual environment CPython3.9.4.final.0-64 in 274ms
creator CPython3Posix(dest=/mnt/sdb3/home/alex/pythonvenv, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/mnt/sdb3/home/alex/.local/share/virtualenv)
added seed packages: pip==21.0.1, setuptools==56.0.0, wheel==0.36.2
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Je kan de virtuele omgeving een willekeurige naam geven. In bovenstaand voorbeeld is dit dus pythonvenv.
Er wordt dan automatisch een directory aangemaakt met deze naam waarin de virtuele omgeving in wordt gemaakt.
Wanneer je daarin kijkt zie je de volgende directories staan:
alex@tux:~/pythonvenv$ ls -l
total 12
drwxr-xr-x 2 alex alex 4096 Apr 23 11:59 bin
drwxr-xr-x 3 alex alex 4096 Apr 23 11:59 lib
-rw-r--r-- 1 alex alex 227 Apr 23 11:59 pyvenv.cfg
Je ziet dat er binnen de virtuele omgeving de directories bin en lib zijn aangemaakt, evenals een configuratie bestand pyenv.cfg.
De virtuele omgeving heeft nu zijn eigen python en pip versie en de benodigde libraries.
Het activeren van de virtuele python omgeving kan je doen met:
source /home/alex/pythonvenv/bin/activate
Je ziet dan ook de prompt veranderen in:
(pythonvenv) alex@tux:~$
De prefix tussen haakjes (pythonvenv) geeft aan dat je in de virtuele python omgeving werkt.
Het de-activeren kan nu met het commando:
deactivate
Je krijgt dan weer de normale prompt terug.
Verwijderen van de virtuele Python omgeving
Het verwijderen van de virtuele Python omgeving is niets meer dan het verwijderen van de complete directory inclusief onderliggende directories en bestanden:
rm -rf /home/alex/pythonvenv