Inhoud
Virtuele omgeving voor Python
⇐ Terug naar start
← – Terug naar Virtuele omgeving start
Een virtuele omgeving in Python is een zelfstandige directory die een Python-interpreter en aanvullende bibliotheken bevat. Het stelt ontwikkelaars in staat om pakketten te installeren die specifiek zijn voor dat project zonder dat ze interfereren met andere projecten of het globale Python-systeem op de computer. Hier zijn enkele redenen waarom virtuele omgevingen cruciaal zijn voor Python-projecten:
- Versiebeheer: Verschillende projecten kunnen afhankelijk zijn van verschillende versies van dezelfde bibliotheek. Door gebruik te maken van een virtuele omgeving kan een specifieke versie van een bibliotheek worden geïnstalleerd zonder dat dit invloed heeft op andere projecten die een andere versie van diezelfde bibliotheek nodig hebben.
- Isolatie: Als ontwikkelaars aan meerdere projecten werken, is het essentieel om te voorkomen dat de ene installatie de andere beïnvloedt. Een virtuele omgeving zorgt ervoor dat alle afhankelijkheden van een project geïsoleerd blijven, waardoor het risico op conflicten wordt verminderd.
- Reproduceerbaarheid: Wanneer een project naar een andere machine of naar een ander teamlid wordt overgedragen, kan het lastig zijn om ervoor te zorgen dat alles correct werkt. Met een virtuele omgeving kan een requirements.txt bestand worden gecreëerd, wat het gemakkelijk maakt om alle benodigde pakketten in de juiste versies opnieuw te installeren.
- Veiligheid: In sommige gevallen kan het nodig zijn om experimentele of niet-vertrouwde bibliotheken te installeren. Door dit in een virtuele omgeving te doen, wordt het risico beperkt dat kwaadaardige code invloed heeft op het hoofdsysteem of andere projecten.
Het opzetten van een virtuele omgeving is eenvoudig en kan worden gedaan met ingebouwde Python-tools zoals venv of met externe tools zoals virtualenv. Zodra de omgeving is gecreëerd, kan deze worden geactiveerd, waarna alle pip installaties en uitvoeringen van Python-scripts binnen die geïsoleerde omgeving plaatsvinden.
Opzetten virtuele omgeving
Stap 1: Creëer een virtuele omgeving
Python update PIP (regelmatig uitvoeren):
python -m pip install -U pip
Navigeer eerst naar de map van je project via de terminal of opdrachtprompt. Als je daar eenmaal bent, kun je de volgende commando's gebruiken om een virtuele omgeving te creëren:
python -m venv venv
Hiermee wordt een nieuwe map genaamd venv in je projectdirectory aangemaakt, waarin de virtuele omgeving wordt opgeslagen.
Stap 2: Activeer de virtuele omgeving
Nu moet je de virtuele omgeving activeren:
Voor Windows:
.\venv\Scripts\Activate
Zodra de virtuele omgeving actief is, moet je voor de naam van je terminal of opdrachtprompt de naam van je virtuele omgeving (venv in dit geval) zien staan. Dit geeft aan dat de omgeving actief is.
Deactiveren van virtuele omgeving
deactivate
Stap 3: Open je project in VS Code
Open VS Code en navigeer naar de map van je project. Je kunt dit ook direct vanuit de terminal doen met het commando:
code .
Stap 4: Configureer de Python-interpreter in VS Code
Om ervoor te zorgen dat VS Code de juiste interpreter gebruikt:
- Open de Command Palette in VS Code met Ctrl+Shift+P (of Cmd+Shift+P op macOS).
- Typ “Python: Select Interpreter” en selecteer deze optie.
- Kies de Python-interpreter die zich in je venv directory bevindt. Het pad zou er ongeveer zo uit moeten zien: ./venv/bin/python (of .\venv\Scripts\python.exe op Windows).
Nu is je virtuele omgeving klaar voor gebruik in VS Code! Alle Python-scripts die je nu in deze VS Code-sessie uitvoert, gebruiken de geactiveerde virtuele omgeving. Bovendien zullen alle pakketten die je installeert met pip binnen deze geïsoleerde omgeving blijven.
Pakketten installeren in V.O.
Zodra je virtuele omgeving is geactiveerd (wat je kunt zien aan de naam van de omgeving voor je terminal- of opdrachtprompt), kun je pakketten installeren met pip, net zoals je dat zou doen buiten de virtuele omgeving. Het enige verschil is dat deze pakketten alleen beschikbaar zullen zijn binnen deze specifieke virtuele omgeving.
Om bijvoorbeeld het OpenAI-pakket te installeren, voer je het volgende commando uit in je terminal of opdrachtprompt:
pip install openai
Dit installeert het OpenAI-pakket en zijn afhankelijkheden in je virtuele omgeving. Als je meerdere pakketten tegelijk wilt installeren, kun je hun namen scheiden met spaties:
pip install openai numpy pandas
→ Upgrade een installatie
pip install --upgrade streamlit
Tip: Het is een goed idee om een requirements.txt bestand in je project te hebben. Hierin kun je alle pakketten en hun versies noteren die voor je project nodig zijn. Dit maakt het gemakkelijker voor anderen (of voor jezelf in de toekomst) om de exacte omgeving te reproduceren. Je kunt een requirements.txt bestand maken met het volgende commando:
pip freeze > requirements.txt
En later, als je het project op een andere machine of in een andere virtuele omgeving wilt opzetten, kun je alle benodigde pakketten in één keer installeren met:
pip install -r requirements.txt
Dit zijn de basisstappen om pakketten in je virtuele omgeving te beheren.
requirements.txt
Het requirements.txt bestand is een essentieel onderdeel van Python-projecten, vooral als het gaat om het delen van code of het opzetten van een consistente ontwikkelomgeving. Hier is een diepgaand overzicht:
Wat is requirements.txt?
Het requirements.txt bestand bevat een lijst van alle Python-pakketten en hun respectievelijke versies die nodig zijn voor een specifiek project. Hierdoor kan iedereen die het project gebruikt of eraan bijdraagt, de exacte versies van de benodigde pakketten installeren.
Wanneer maak je het aan?
Idealiter maak je een requirements.txt bestand aan zodra je met een nieuw project begint en je begint met het installeren van externe pakketten. Telkens wanneer je een nieuw pakket toevoegt aan je project, moet je de requirements.txt bijwerken. Dit kan handmatig of met het pip freeze commando.
Hoe maak je een requirements.txt bestand?
Na het installeren van alle benodigde pakketten in je virtuele omgeving, voer je het volgende commando uit:
pip freeze > requirements.txt
Dit schrijft alle geïnstalleerde pakketten en hun versies naar het requirements.txt bestand
Hoe gebruik je requirements.txt op een andere locatie?
Als je het project wilt opzetten op een andere machine of in een andere virtuele omgeving:
- Activeer de nieuwe virtuele omgeving (of maak er een aan en activeer deze).
- Installeer de benodigde pakketten met:
pip install -r requirements.txt
Belangrijke opmerkingen over requirements.txt:
- Versiebeheer: Door specifieke versies van pakketten in requirements.txt op te nemen, zorg je ervoor dat je project consistent blijft, ongeacht wanneer of waar het wordt opgezet. Dit voorkomt het zogenaamde “het werkte op mijn machine” probleem.
- Flexibiliteit: Je kunt ook versiebereiken of andere specifiers gebruiken in requirements.txt. Bijvoorbeeld:
- package_name>=1.0.0: Installeert versie 1.0.0 of hoger van het pakket.
- package_name⇐2.0.0: Installeert versie 2.0.0 of lager van het pakket.
- package_name~=1.4: Installeert de nieuwste versie die compatibel is met versie 1.4.
- Veiligheid: Het regelmatig bijwerken van de pakketten in je requirements.txt bestand is belangrijk voor de veiligheid. Oudere versies van pakketten kunnen bekende beveiligingslekken bevatten.
- Gedeelde Ontwikkeling: Als je met een team werkt, is requirements.txt essentieel om ervoor te zorgen dat iedereen met dezelfde pakketversies werkt.
In essentie is het requirements.txt bestand een eenvoudig, maar krachtig hulpmiddel om de consistentie en reproduceerbaarheid van je Python-projecten te waarborgen. Het regelmatig bijwerken en gebruiken ervan is een best practice in de Python-gemeenschap.
De omgeving opnieuw activeren
Als je de console hebt afgesloten waarin je virtuele omgeving was geactiveerd, moet je de omgeving opnieuw activeren wanneer je een nieuwe console opent. Hier is hoe je dat doet:
- Navigeer naar de map van je project waar je virtuele omgeving zich bevindt (als je dat nog niet hebt gedaan).
- Activeer de virtuele omgeving:
.\venv\Scripts\Activate
Zodra de omgeving is geactiveerd, zie je de naam van je virtuele omgeving voorafgaand aan de prompt in je terminal of opdrachtprompt. Dit geeft aan dat de virtuele omgeving actief is en dat alle Python-commando's en pip-installaties die je uitvoert binnen deze geïsoleerde omgeving zullen plaatsvinden.
Virtuele omgeving vanuit VS Code
Een Virtuele omgeving creëren vanuit VS Code
- Open het Command Palette (Ctrl+Shift+P) in VS Code
- Zoek het “Python: Create Environment” command en selecteer het
- Kies de aanbevolen Python omgeving
- Start een app door het start bestand te selecteren en rechts boven de editor op het play knopje te klikken
Pakketten toevoegen aan deze omgeving doe je via de terminal in VS Code.
Voorbeeld OpenAI:
pip install openai
→ Python environments in VS Code
→ VS Code virtuele omgeving en Docker
Systeemvariabelen zetten voor de Virtuele omgeving
→ Systeemvariabelen zetten voor de Virtuele omgeving in een bestand met de naam .env in de in de zelfde map als de app.py (main app) in het volgende format:
HF_TOKEN = "hf_XXXXXXXXXX" OPENAI_API_KEY = "sk-XXXXXXXXXXXX"
Instaleer dotenv om het .env bestand te kunnen lezen zodat daar de systeem variabelen in kunnen
pip install python-dotenv
Vervolgens waarden uit .env bestand lezen en printen met Python:
import os from dotenv import load_dotenv load_dotenv() def main(): print(os.getenv("HF_TOKEN")) print(os.getenv("OPENAI_API_KEY")) if __name__ == "__main__": main()