Gebruikershulpmiddelen

Site-hulpmiddelen


virtuele_omgeving_voor_python

Virtuele omgeving voor Python

Terug naar start
← – Terug naar Python 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Open de Command Palette in VS Code met Ctrl+Shift+P (of Cmd+Shift+P op macOS).
  2. Typ “Python: Select Interpreter” en selecteer deze optie.
  3. 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:

  1. Activeer de nieuwe virtuele omgeving (of maak er een aan en activeer deze).
  2. Installeer de benodigde pakketten met:
pip install -r requirements.txt

Belangrijke opmerkingen over requirements.txt:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Navigeer naar de map van je project waar je virtuele omgeving zich bevindt (als je dat nog niet hebt gedaan).
  2. 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()
virtuele_omgeving_voor_python.txt · Laatst gewijzigd: 2024/01/21 13:56 door a3dijke