Ugrás a fő tartalomra
Python Tooling2026-07-31 · 9 perc olvasás

Python virtuális környezetek 2026-ban: venv, uv, pipx, poetry – mikor melyiket használjuk

Minden Python-oktatóanyag azt mondja, hogy „használjon virtuális környezetet”, és továbbmegy. Ez megteszi az extra mérföldet: micsoda IS valójában egy venv, a négy eszköz, amelyet érdemes tudni 2026-ban, egy 60 másodperces döntési fa a megfelelő kiválasztásához, és a két hiba, amelyek egy héten belül megzavarják a beállítást.

Milyen is valójában a virtuális környezet

A venv egy egy Python interpreter szimbolikus hivatkozást és egy privát `site-packages/` könyvtárat tartalmaz. Amikor "aktiválva van", a PATH a <venv>/bin elé kerül, így a python és a pip a shellben a venv másolataira mutat. A pip install X a venv site-packages/-jába ír, nem a rendszer Python-jába.

Ennyi. Nincs varázslat. Ez egy szimbolikus hivatkozást és egy "pyvenv.cfg" fájlt tartalmazó mappa.

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

Minden más (szkriptek aktiválása, wrapperek, csomagkezelők) a kényelem ezen a formán felül.

Miért van szüksége rá, mindig

A venv nélkül a pip install X a rendszer Python site-packages/ fájljába írja. Három probléma:

1. Konfliktusok. Az A projekthez django==4.2; A B projektnek szüksége van a „django==5.1” paraméterre. Venv nélkül lehetetlen.

2. Reproducálhatóság. A "működik a gépemen" egy rendszer-Python probléma. A venv pillanatkép A környezet.

3. Tisztítás. Töröl egy projektet? Törölje a venv mappát. A System-Python-telepítések örökre felhalmozódnak.

A macOS 12+ rendszeren és a legtöbb Linux disztribúción a system-Python mostantól az operációs rendszer tulajdona – a pip akár meg is tagadhatja a telepítést „--break-system-packages” nélkül. Ez egy tipp.

A 4 eszköz, amelyet érdemes tudni

1. venv — az stdlib alapvonal

Minden Python 3.3+ telepítéssel együtt szállítjuk. Nulla függőség. Az univerzális visszaesés:

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

Használja, ha: oktatóanyagot ír, annak biztosítása, hogy a szkript mindenhol működjön, vagy olyan zárolt CI-ben, ahol semmit sem telepíthet.

2. "uv" – a modern alapértelmezett (2026)

Rozsdás írás, 10-100x gyorsabb, mint a pip. A venv + pip + pip-tools + pyenv-download-python helyettesíti. Tekintse meg uv deep-dive oldalunkat a teljes körútért.

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

Használja, amikor: bármely 2026-os projekt – egyéni, csapat, CI, Docker. A sebességkülönbség a hideg gyorsítótáron valós (45s pip → 2s uv egy tipikus Django projektnél).

3. pipx — CLI-eszközökhöz

Amikor olyan parancssori felületet telepít, mint a ruff, httpie, black, youtube-dl, mypy, akkor nem szeretné, hogy a projekt venv-je legyen (miért függjön a rufftól, hogy az import project.things működjön?). És nem akarod, hogy a Python rendszerben (ütközések). A pipx' mindegyiket saját izolált venv-be helyezi, de a CLI-t globálisan teszi közzé:

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

Amikor: Python-alapú parancssori felület telepítése. Ökölszabály: "pipx install X", ha X olyan végrehajtható fájlt szállít, amelyet bármelyik projektből futtatna; "uv pip install X", ha az X egy olyan könyvtár, amelyet "importál".

Modern csere: az uv tool install ruff ugyanezt csinálja külön pipx telepítés nélkül. Válassz bármelyiket.

4. „költészet” – érett függőségi szekrény (csökkenő részesedés)

Az uv megjelenése előtt a "költészet" volt a modern csomagolóeszköz. Kiváló függőségi feloldó, determinisztikus poetry.lock, szoros integráció a pyproject.toml-lel. Még mindig szilárd – de lassabb, mint az UV, és növeli a kognitív költségeket.

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

Használja, ha: a meglévő projekt már használ költészetet, vagy költészetspecifikus bővítményekre van szüksége (pl. "költészet-bővítmény-export"). A 2026-os ÚJ projektek esetében az „uv” gyorsabban eljuttatja Önt kisebb helyigénnyel.

A 60 másodperces döntési fa

▶ PYTHONeditable · runs in your browser

ennyi. Manapság a Python fejlesztők 90%-a választhat erről a listáról anélkül, hogy valaha is szüksége lenne a "pyenv", "virtualenvwrapper", "pew" vagy "conda" kifejezésre.

Conda – a különleges eset

A conda egy külön univerzum: csomagkezelő + venv menedzser + Python disztribútor + C-könyvtárkezelő, elsősorban tudományos Python számára. Ha nehéz numerikus munkát végez a "numpy" / "scipy" / "pandas" / GPU-veremekkel, amelyekhez egyező CUDA + cuDNN verziók szükségesek, a "miniconda" még mindig megérheti – az előre lefordított binárisok órákat takarítanak meg a pip ellen.

Egyébként: a sima uv már tudományos stackeken is versenyképes (a numpy / pandas telepítések másodpercek, nem percek). Ne nyúljon a condához, hacsak nincs kifejezetten szüksége egy olyan C-könyvtárra, amelyet nem tud könnyen előállítani.

A két hiba, amely egy héten belül megszakítja a beállítást

1. A .venv/ lekötése a git-be

A venv a következőket tartalmazza:

  • Abszolút útvonalak az adott Python-telepítéshez.
  • Lefordított .pyc fájlok.
  • OS-specifikus bináris fájlok.

Vállalja ezt → a Windows rendszerű csapattársa nem tud semmit futtatni. ELŐSZÖR adja hozzá a .venv/ (és venv/, .env/) karakterláncot a .gitignore-hoz, majd hozza létre a venv-t.

2. Aktiválás rossz shellben

A source .venv/bin/activate csak a CURRENT shellben állítja be az env vars-t. Ha új terminállapot nyit meg, akkor visszatér a Python rendszerhez. Két biztonságos minta:

1. Minden munkamenet újraaktiválása – a szabványos folyamat.

2. `uv run` / `poetry run` / `python -m project` – soha nem aktiválódik. Futtassa a parancsokat egy új, az eszköz előtagjával ellátott shellből. Kiváló Makefiles, CI, npm-scriptek, git hook-okban.

Szabály a szkriptekre: ha egysoros CI-ből vagy Makefile-ból fut, NE aktiválja – használja az „uv run pytest” parancsot vagy a „.venv/bin/pytest” teljes elérési utat. Az aktiválás csak interaktív shellekre vonatkozik.

Migráció az eszközök között

pip + venv → uv:

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

A Requirements.txt továbbra is szó szerint működik. Két perc.

költészet → uv:

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

venv → költészet:

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

Ellenőrzés

A beállítás után mindig ellenőrizze, MELYIK Python + pip-et használ:

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

Ha a which python megjeleníti a rendszer elérési útját az aktiválás után, akkor valami nem működik – általában egy olyan alhéjban aktiváltad, amely már kilépett.


A virtuális környezet azon kevés Python-témák egyike, ahol a modern válasz (2026) valóban egyszerűbb, mint a történelmi válasz. "uv" az új projektekhez, "venv" a szkriptekhez, "pipx" a CLI-khez. Kész.

Következő lépés: a Python DevOps pálya lefedi az uv + ruff + Docker + a modern Python telepítési verem – gyakorlatias, valódi Python futtatását a böngészőben.

Készen áll a kipróbálására?

Ingyenes 15 óra ingyenes regisztráció után – kártya nélkül. Kísérje ki a platformot, majd döntse el.

Kezdje ingyen →

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.