Naar hoofdinhoud
Python-tooling2026-07-31 · 9 min leestijd

Virtuele Python-omgevingen in 2026: venv, uv, pipx, poëzie - Wanneer gebruik je welke

Elke Python-tutorial zegt "gebruik een virtuele omgeving" en gaat verder. Deze gaat nog een stap verder: wat een venv eigenlijk IS, de vier tools die de moeite waard zijn om te kennen in 2026, een beslissingsboom van 60 seconden om de juiste te kiezen, en de twee fouten die je setup binnen een week kapot maken.

Wat een virtuele omgeving eigenlijk is

Een venv is een map die een symlink van een Python-interpreter bevat plus een privé `site-packages/`. Wanneer het "geactiveerd" is, staat PATH voor <venv>/bin, dus python en pip in je shell wijzen naar de kopieën van de venv. pip install X schrijft naar de site-packages/ van de venv, niet naar die van systeem Python.

Dat is het. Geen magie. Het is een map met een symbolische link en een pyvenv.cfg.

BASH
$ python -m venv .venv $ ls .venv/ bin/ include/ lib/ pyvenv.cfg $ cat .venv/pyvenv.cfg home = /opt/homebrew/opt/python@3.13/bin include-system-site-packages = false version = 3.13.2

Al het andere (scripts activeren, wrappers, pakketbeheerders) is gemak bovenop deze vorm.

Waarom je er altijd een nodig hebt

Zonder venv schrijft pip install X de site-packages/ van Python naar uw systeem. Drie problemen:

1. Conflicten. Project A heeft django==4.2 nodig; Project B heeft django==5.1 nodig. Onmogelijk zonder venvs.

2. Reproduceerbaarheid. "Werkt op mijn machine" is een systeem-Python-probleem. Een venv-momentopname IS de omgeving.

3. Opruimen. Een project verwijderen? Verwijder de venv-map. Systeem-Python-installaties stapelen zich voor altijd op.

Op macOS 12+ en de meeste Linux-distributies is systeem-Python nu eigendom van het besturingssysteem — pip kan zelfs weigeren te installeren zonder --break-system-packages. Dat is een hint.

De 4 tools die de moeite waard zijn om te kennen

1. venv — de stdlib-basislijn

Wordt geleverd bij elke Python 3.3+ installatie. Geen afhankelijkheden. De universele terugval:

BASH
python -m venv .venv # create source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt deactivate # or close the shell

Gebruik wanneer: een tutorial schrijven, ervoor zorgen dat een script overal werkt, of in een vergrendeld CI waar u niets kunt installeren.

2. uv — de moderne standaard (2026)

Rust-geschreven, 10-100x sneller dan pip. Vervangt venv + pip + pip-tools + pyenv-download-python. Zie onze uv deep-dive voor de volledige rondleiding.

BASH
uv venv # create venv (uses current Python) uv venv --python 3.13 # or download + pin a version uv pip install -r requirements.txt uv run pytest # run without activating uv add fastapi # append to pyproject.toml + install uv sync # install exactly what pyproject.toml says

Gebruiken wanneer: elk project uit 2026 — solo, team, CI, Docker. Het snelheidsverschil op een koude cache is reëel (45s pip → 2s uv op een typisch Django-project).

3. pipx — voor CLI-tools

Wanneer u een CLI zoals ruff, httpie, black, youtube-dl, mypy installeert, wilt u deze niet in uw projectvenv hebben (waarom zou u afhankelijk zijn van ruff om import project.things te laten werken?). En je wilt het niet in systeem Python (conflicten). pipx plaatst elk in zijn eigen geïsoleerde venv, maar stelt de CLI globaal bloot:

BASH
pipx install ruff pipx install httpie pipx install black ruff check . # works from anywhere, no activation httpie GET api.github.com black .

Gebruiken wanneer: een op Python gebaseerde CLI installeren. Vuistregel: pipx install X als X een uitvoerbaar bestand levert dat je vanuit elk project kunt uitvoeren; uv pip install X als X een bibliotheek is die u importeert.

Moderne vervanging: uv tool install ruff doet hetzelfde zonder een aparte pipx-installatie. Kies een van beide.

4. poëzie — volwassen afhankelijkheidskluis (dalend aandeel)

Voordat uv landde, was 'poëzie' het moderne verpakkingsinstrument bij uitstek. Uitstekende afhankelijkheidsoplosser, deterministische poetry.lock, nauwe integratie met pyproject.toml. Nog steeds solide – maar langzamer dan uv en voegt cognitieve overhead toe.

BASH
poetry new my-project poetry add fastapi poetry install poetry run pytest poetry publish

Gebruiken wanneer: een bestaand project al poëzie gebruikt, of je poëzie-specifieke plug-ins nodig hebt (bijvoorbeeld poetry-plugin-export). Voor NIEUWE projecten in 2026 brengt uv u daar sneller met een kleinere footprint.

De beslisboom van 60 seconden

▶ PYTHONeditable · runs in your browser

Dat is het. 90% van de Python-ontwikkelaars van vandaag kan uit deze lijst kiezen zonder ooit pyenv, virtualenvwrapper, pew of conda nodig te hebben.

Conda — het speciale geval

conda is een apart universum: pakketbeheerder + venv-beheerder + Python-distributeur + C-bibliotheekbeheerder, voornamelijk voor wetenschappelijk Python. Als je zwaar numeriek werk doet met numpy / scipy / pandas / GPU-stacks die overeenkomende CUDA + cuDNN-versies nodig hebben, kan miniconda nog steeds de moeite waard zijn - de vooraf gecompileerde binaire bestanden besparen uren versus pip.

Anders: gewone uv is nu ook concurrerend op wetenschappelijke stapels (numpy / pandas-installaties zijn seconden, geen minuten). Grijp niet naar conda tenzij je specifiek een C-bibliotheek bindende pip nodig hebt die je niet gemakkelijk kunt produceren.

De twee fouten die je setup binnen een week kapot maken

1. .venv/ committen aan git

Een venv bevat:

  • Absolute paden naar uw specifieke Python-installatie.
  • Gecompileerde .pyc-bestanden.
  • Binaire bestanden die besturingssysteemspecifiek zijn.

Beloof dat → uw teamgenoot op Windows kan niets uitvoeren. Voeg EERST .venv/ (en venv/, .env/) toe aan uw .gitignore en maak vervolgens de venv.

2. Activeren in de verkeerde shell

source .venv/bin/activate stelt env vars alleen in de HUIDIGE shell in. Als u een nieuw terminaltabblad opent, keert u terug naar systeem Python. Twee veilige patronen:

1. Elke sessie opnieuw activeren — het standaardproces.

2. `uv run` / `poetry run` / `python -m project` — helemaal nooit activeren. Voer opdrachten uit vanuit een nieuwe shell voorafgegaan door de tool. Geweldig in Makefiles, CI, npm-scripts, git hooks.

Regel voor scripts: als het een one-liner is die wordt uitgevoerd vanuit CI of een Makefile, activeer deze dan NIET - gebruik uv run pytest of het volledige pad .venv/bin/pytest. Activering is alleen voor interactieve shells.

Migratie tussen tools

pip + venv → uv:

BASH
rm -rf .venv uv venv uv pip install -r requirements.txt

Vereisten.txt blijft woordelijk werken. Twee minuten.

poëzie → uv:

BASH
uvx migrate-to-uv # community tool, converts pyproject.toml

venv → poëzie:

BASH
poetry init poetry add $(pip freeze | cut -d= -f1)

Verificatie

Controleer na het instellen altijd WELKE Python + pip je gebruikt:

BASH
$ which python /path/to/project/.venv/bin/python # ✅ venv /opt/homebrew/bin/python # ❌ system, activation didn't take $ which pip /path/to/project/.venv/bin/pip # ✅ venv $ python -c "import sys; print(sys.prefix)" /path/to/project/.venv # ✅ venv

Als welke python na activering een systeempad laat zien, is er iets mis - meestal heb je het geactiveerd in een subshell die al is afgesloten.


Virtuele omgevingen zijn een van de weinige Python-onderwerpen waarop het moderne antwoord (2026) echt eenvoudiger is dan het historische antwoord. uv voor nieuwe projecten, venv voor scripts, pipx voor CLI's. Klaar.

Volgende stap: de Python DevOps-track omvat uv + ruff + Docker + de moderne Python-implementatiestack - hands-on met echte Python in uw browser.

Klaar om het te proberen?

15 lessen gratis na een gratis aanmelding — geen kaart. Proef het platform en beslis dan.

Begin gratis →

Or unlock every lesson

Pro — $12/mo, unlimited AI, cancel any time. Refund within 14 days worldwide.

See Pro plans →

Get one Python lesson + one career idea every Friday

No spam, no "buy our course now". Three bullets, every Friday. Unsubscribe with one click.