Към основното съдържание
Инструменти на Python2026-07-31 · 9 мин четене

Виртуални среди на Python през 2026 г.: venv, uv, pipx, поезия — кога да използвате кое

Всеки урок за Python казва „използване на виртуална среда“ и продължава напред. Този изминава допълнителната миля: какво всъщност Е venv, четирите инструмента, които си струва да знаете през 2026 г., 60-секундно дърво за вземане на решения за избор на правилното и двете грешки, които нарушават настройката ви в рамките на една седмица.

Какво всъщност представлява виртуалната среда

venv е директория, съдържаща символна връзка за интерпретатор на Python плюс частни `site-packages/`. Когато е „активиран“, PATH добавя <venv>/bin, така че python и pip във вашата обвивка сочат към копията на venv. pip install X записва в site-packages/ на venv, а не в системния Python.

Това е. Без магия. Това е папка със символна връзка и 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

Всичко останало (активиране на скриптове, обвивки, мениджъри на пакети) е удобство в допълнение към тази форма.

Защо имате нужда от такъв, винаги

Без venv, pip install X записва в site-packages/ на вашата система Python. Три проблема:

1. Конфликти. Проект А се нуждае от django==4.2; Проект B се нуждае от django==5.1. Невъзможно без venvs.

2. Възпроизводимост. „Работи на моята машина“ е системен проблем на Python. Моментната снимка на venv Е средата.

3. Почистване. Изтриване на проект? Изтрийте папката venv. Инсталациите на System-Python се натрупват завинаги.

В macOS 12+ и повечето Linux дистрибуции, system-Python вече е притежаван от OS — pip може дори да откаже инсталиране без --break-system-packages. Това е намек.

4-те инструмента, които си струва да знаете

1. venv — базовата линия на stdlib

Доставя се с всяка инсталация на Python 3.3+. Нулеви зависимости. Универсалният резервен вариант:

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

Използвайте, когато: пишете урок, гарантирате, че скрипт работи навсякъде или в заключен CI, където не можете да инсталирате нищо.

2. uv — модерното по подразбиране (2026)

Rust-writed, 10-100 пъти по-бързо от pip. Заменя venv + pip + pip-tools + pyenv-download-python. Вижте нашето uv дълбоко гмуркане за пълната обиколка.

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

Използвайте, когато: всеки проект 2026 — соло, екип, CI, Docker. Разликата в скоростта на студен кеш е реална (45 s pip → 2 s uv при типичен проект на Django).

3. pipx — за CLI инструменти

Когато инсталирате CLI като ruff, httpie, black, youtube-dl, mypy, вие не го искате във вашия проект venv (защо да разчитате на ruff, за да работи import project.things?). И не го искате в системата Python (конфликти). pipx поставя всеки в собствен изолиран venv, но излага CLI глобално:

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

Използвайте при: инсталиране на базиран на Python CLI. Основно правило: pipx инсталира X, ако X изпраща изпълним файл, който бихте изпълнили от всеки проект; uv pip install X, ако X е библиотека, която импортирате.

Модерна замяна: uv tool install ruff прави същото без отделно инсталиране на pipx. Изберете едно от двете.

4. poetry — зряло шкафче за зависимости (намаляващ дял)

Преди ултравиолетовите лъчи да се приземят, „поезията“ беше основният модерен инструмент за опаковане. Отличен преобразувател на зависимости, детерминистичен poetry.lock, тясна интеграция с pyproject.toml. Все още солиден — но по-бавен от UV и добавя когнитивни разходи.

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

Използвайте, когато: съществуващият проект вече използва поезия или имате нужда от специфични за поезия добавки (напр. poetry-plugin-export). За НОВИ проекти през 2026 г. „uv“ ви отвежда по-бързо с по-малък отпечатък.

60-секундното дърво на решенията

▶ PYTHONeditable · runs in your browser

Това е. 90% от разработчиците на Python днес могат да избират от този списък, без изобщо да имат нужда от pyenv, virtualenvwrapper, pew или conda.

Conda — специалният случай

conda е отделна вселена: мениджър на пакети + мениджър на venv + дистрибутор на Python + мениджър на C-библиотеки, предимно за научен Python. Ако извършвате тежка числена работа с numpy / scipy / pandas / GPU стекове, които се нуждаят от съвпадащи CUDA + cuDNN версии, miniconda все още може да си струва - предварително компилираните двоични файлове спестяват часове срещу pip.

В противен случай: обикновеният uv вече е конкурентен и на научни стекове (инсталиранията на numpy / pandas са секунди, а не минути). Не посягайте към conda, освен ако изрично не се нуждаете от обвързване на C-библиотека, което pip не може лесно да произведе.

Двете грешки, които нарушават вашата настройка в рамките на една седмица

1. Комитиране на .venv/ към git

Venv съдържа:

  • Абсолютни пътища до вашата конкретна инсталация на Python.
  • Компилирани .pyc файлове.
  • Двоични файлове, които са специфични за ОС.

Потвърдете, че → вашият съотборник в Windows не може да стартира нищо. ПЪРВО добавете .venv/ (и venv/, .env/) към вашия .gitignore, след което създайте venv.

2. Активиране в грешна обвивка

source .venv/bin/activate задава env vars само в ТЕКУЩА обвивка. Ако отворите нов раздел на терминала, вие се връщате към системния Python. Два безопасни модела:

1. Реактивирайте всяка сесия — стандартният поток.

2. `uv run` / `poetry run` / `python -m project` — никога не се активира изобщо. Изпълнявайте команди от нова обвивка с префикс инструмента. Страхотен в Makefiles, CI, npm-скриптове, git hooks.

Правило за скриптове: ако това е изпълнение на един ред от CI или Makefile, НЕ активирайте — използвайте uv run pytest или пълния път .venv/bin/pytest. Активирането е само за интерактивни черупки.

Миграция между инструменти

pip + venv → uv:

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

Requirements.txt продължава да работи дословно. Две минути.

поезия → uv:

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

venv → поезия:

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

Проверка

След настройка винаги проверявайте КОЙ Python + pip използвате:

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

Ако which python показва системен път след активиране, нещо не е наред — обикновено сте активирали в подобвивка, която вече е излязла.


Виртуалните среди са една от малкото теми на Python, където съвременният отговор (2026) е наистина по-прост от историческия отговор. uv за нови проекти, venv за скриптове, pipx за CLI. Готово.

Следваща стъпка: Python DevOps track обхваща uv + ruff + Docker + модерния стек за внедряване на Python — практически с истински Python, работещ във вашия браузър.

Готови ли сте да опитате?

15 безплатни уроци след безплатна регистрация — без карта. Изпробвайте платформата и след това решете.

Започнете безплатно →

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.