core code helper

Як встановити Python і створити віртуальне середовище: venv, pip і uv

Python на Windows, macOS і Linux, venv і pip, сучасний менеджер uv та рішення помилок externally-managed-environment і ModuleNotFoundError.

0 імпортували Імпортувати собі

Встановити Python — п'ять хвилин. Налаштувати його так, щоб через місяць не боротися з конфліктами пакетів, помилкою externally-managed-environment і питанням «а чому в терміналі одна версія, а в редакторі інша» — трохи довше. У цьому посібнику — правильне встановлення Python на Windows, macOS і Linux, віртуальні середовища venv, менеджер пакетів pip і сучасний інструмент uv, який замінює їх обидва.

Актуальність

Жовтень 2026 року: найсвіжіша версія — Python 3.15 (вийшла цього місяця). Версії 3.14 і 3.15 отримують виправлення помилок, 3.11–3.13 — лише виправлення безпеки, а 3.10 більше не підтримується.

Яку версію Python обрати

Сценарій Версія
Новий проєкт, навчання 3.14 — свіжа й уже підтримана всіма популярними бібліотеками
Хочете найновіше 3.15, але спершу перевірте, що ваші залежності її підтримують
Наявний проєкт та, що вказана в проєкті (.python-version, pyproject.toml, Dockerfile)
Щось старіше за 3.11 лише для підтримки старого коду: такі версії вже не отримують навіть виправлень безпеки

Нові версії Python виходять щожовтня. Бібліотекам із компільованими частинами (numpy, pandas, psycopg тощо) зазвичай потрібно від кількох тижнів до кількох місяців, щоб випустити готові пакети під нову версію. Тому версія «мінус одна» — найспокійніший вибір.

Встановлення Python на Windows

З версії 3.14 рекомендований спосіб — Python install manager: невеликий застосунок, який встановлює й оновлює версії Python і дає команди python та py.

Варіант 1 — Microsoft Store. Знайдіть «Python install manager», встановіть, відкрийте термінал і введіть python. Якщо жодної версії ще немає, менеджер сам поставить найсвіжішу.

Варіант 2 — з python.org. На сторінці python.org/downloads завантажте інсталятор менеджера (файл MSIX) і запустіть його подвійним кліком.

Варіант 3 — winget (зручно для скриптів):

winget install 9NQ7512CXL7T -e --accept-package-agreements --disable-interactivity
py install --configure -y

Керування версіями:

py list                 # встановлені версії
py list --online 3.14   # що доступно для встановлення
py install 3.14         # встановити 3.14
py -V:3.14 script.py    # запустити скрипт конкретною версією
py install --update     # оновити встановлені версії
Старий інсталятор .exe застарів

Класичний інсталятор із галочкою «Add python.exe to PATH» оголошено застарілим у Python 3.14, а для 3.16 його вже не випускатимуть. Якщо він у вас стоїть і все працює — нічого не ламайте. Для нових установок беріть install manager. Старий лаунчер py.exe може з ним конфліктувати — видаліть його через «Інстальовані програми».

Встановлення Python на macOS

macOS має власний python3 (з'являється разом з Xcode Command Line Tools), але він потрібен системі й зазвичай застарілий. Не використовуйте його для своїх проєктів.

Через Homebrew:

brew install python@3.14
python3.14 --version

Або інсталятор .pkg з python.org. Після встановлення запустіть Install Certificates.command з папки /Applications/Python 3.14/, інакше pip і urllib можуть скаржитися на SSL-сертифікати.

Або uv (див. нижче) — він сам завантажить потрібну версію Python у свою папку і нічого не змішає з системою.

Встановлення Python на Linux (Ubuntu, Debian)

У Ubuntu Python вже є: від нього залежать сама система й половина утиліт. Наприклад, в Ubuntu 24.04 це Python 3.12.

python3 --version

Доставте модуль віртуальних середовищ і pip:

sudo apt update
sudo apt install python3-venv python3-pip
Не видаляйте й не підміняйте системний Python

Команди на кшталт sudo apt remove python3 або заміна /usr/bin/python3 посиланням на іншу версію ламають apt, мережеві налаштування та графічну оболонку. Якщо потрібна інша версія — поставте її поруч (через uv), а не замість системної.

Якщо команда python (без трійки) не знаходиться, а скрипти очікують саме її, поставте пакет-посилання:

sudo apt install python-is-python3

Навіщо віртуальні середовища

Уявіть два проєкти: одному потрібна бібліотека версії 1.x, іншому — 2.x. Якщо ставити пакети «глобально», один проєкт неминуче зламається. Віртуальне середовище — це окрема папка (зазвичай .venv) з власним інтерпретатором і власним набором пакетів для кожного проєкту.

Схема: системний Python лишається недоторканим, а кожен проєкт має власне віртуальне середовище .venv зі своїми пакетами

На сучасних Ubuntu, Debian і Fedora системний Python узагалі не дозволяє ставити пакети через pip:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

Це не баг, а захист (стандарт PEP 668): pip міг би перезаписати пакети, від яких залежить система. Правильне рішення — віртуальне середовище. Прапорець --break-system-packages, який радять на форумах, робить саме те, що написано в його назві.

venv і pip: класичний спосіб

Створити й активувати середовище

cd ~/projects/my-app
python3 -m venv .venv

Активація залежить від оболонки:

Система / оболонка Команда
Linux, macOS (bash, zsh) source .venv/bin/activate
fish source .venv/bin/activate.fish
Windows PowerShell .venv\Scripts\Activate.ps1
Windows cmd .venv\Scripts\activate.bat

Після активації на початку рядка терміналу з'явиться (.venv). Перевірте, який Python тепер використовується:

which python      # Linux/macOS → .../my-app/.venv/bin/python
where python      # Windows

Встановлення пакетів

python -m pip install --upgrade pip
python -m pip install requests fastapi
Чому python -m pip, а не просто pip

python -m pip гарантує, що пакет поставиться саме в той Python, яким ви запускаєте код. Просто pip може належати іншій версії Python — і тоді з'являється класичне «встановив, а ModuleNotFoundError».

Зафіксувати залежності

python -m pip freeze > requirements.txt

На іншій машині чи сервері:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

Вийти і прибрати

  • deactivate — вийти із середовища.
  • Середовище зламалося — просто видаліть папку .venv і створіть заново з requirements.txt.
  • Додайте .venv/ у .gitignore: середовище не комітять, його відтворюють.

Редактор має бачити ваше середовище

У VS Code натисніть Ctrl+Shift+P → Python: Select Interpreter і виберіть інтерпретатор із .venv. Тоді автодоповнення, запуск і налагодження працюватимуть з пакетами проєкту. У PyCharm те саме — в налаштуваннях інтерпретатора проєкту.

uv: сучасна заміна pip, venv і pyenv

uv від Astral — менеджер пакетів і проєктів, написаний на Rust. Він працює в рази швидше за pip, сам встановлює потрібні версії Python, веде lock-файл і замінює одразу кілька інструментів: pip, venv, pip-tools, pipx і pyenv.

Встановлення uv

Linux і macOS:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Новий проєкт з uv

uv init my-app
cd my-app
uv add requests fastapi      # додає залежності в pyproject.toml і оновлює uv.lock
uv run main.py               # запуск у середовищі проєкту

uv run сам створить .venv і встановить усе з lock-файлу — активувати нічого не треба. На іншій машині достатньо однієї команди:

uv sync

Потрібна конкретна версія Python

uv python install 3.14
uv python pin 3.14        # записує версію у .python-version

Тепер проєкт завжди працюватиме на 3.14, незалежно від того, що встановлено в системі.

Старий проєкт з requirements.txt

uv вміє працювати і за класичною схемою, просто швидше:

uv venv
uv pip install -r requirements.txt

Консольні утиліти: uvx і pipx

Інструменти на кшталт ruff, httpie чи black не належать жодному проєкту. Ставте їх ізольовано:

uvx ruff check .            # запустити без встановлення
uv tool install ruff        # встановити як окрему команду

Без uv те саме робить pipx: sudo apt install pipx, pipx ensurepath, pipx install ruff.

Що обрати

Інструмент Коли
venv + pip навчання, прості скрипти, сервери, де нічого не можна доставляти
uv нові проєкти: швидко, з lock-файлом і керуванням версіями Python
Poetry наявні проєкти, які вже на ньому
conda наука про дані з нативними залежностями (CUDA, GDAL), якщо так заведено в команді

Типові помилки

python: command not found / 'python' is not recognized

  • Linux: команда називається python3. Або поставте python-is-python3.
  • Windows: якщо бачите Python was not found; run without arguments to install from the Microsoft Store..., це спрацював ярлик Windows. Встановіть Python install manager або вимкніть ярлик: Параметри → Програми → Додаткові параметри → «Псевдоніми виконання програми».
  • Після встановлення відкрийте новий термінал: старий не бачить змін у PATH.

ModuleNotFoundError: No module named 'requests'

Пакет встановлено в інший Python, ніж той, яким ви запускаєте код. Перевірте:

python -c "import sys; print(sys.executable)"
python -m pip show requests

Якщо шляхи різні — активуйте потрібне середовище або виберіть правильний інтерпретатор у редакторі.

ensurepip is not available

The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

Поставте пакет, який підкаже повідомлення, наприклад sudo apt install python3.12-venv (номер — ваша версія), і створіть середовище заново.

Activate.ps1 cannot be loaded because running scripts is disabled

PowerShell за замовчуванням забороняє запуск скриптів. Дозвольте локальні скрипти для свого користувача:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

error: externally-managed-environment

Ви ставите пакет у системний Python. Створіть віртуальне середовище (python3 -m venv .venv) або, для консольних утиліт, використайте pipx чи uv tool install.

Часті питання

Чи потрібно ставити пакети з sudo? Ні. sudo pip install — найкоротший шлях зламати систему. Пакети живуть у віртуальних середовищах, які належать вашому користувачу.

Скільки версій Python можна мати одночасно? Скільки завгодно. На Windows ними керує py, на Linux і macOS — uv (або pyenv). Кожна версія живе в окремій папці.

Що комітити в git: requirements.txt чи uv.lock? Те, чим користується проєкт. Для uv комітьте pyproject.toml, uv.lock і .python-version. Для класичної схеми — requirements.txt. Папку .venv не комітять ніколи.

Чи працює venv у Docker? У контейнері ізоляцію вже дає сам контейнер, тож venv не обов'язковий. Але з uv часто роблять саме так: uv sync --frozen в образі дає точне відтворення залежностей з lock-файлу.

Що далі

Середовище готове — час писати код. У рубриці Python є статті про асинхронність з asyncio і кешування в Redis, а в рубриці Backend — про API, бази даних і розгортання.

Збережіть статтю собі

Увійдіть, щоб імпортувати її у власні нотатки, відмічати вивчене, ставити лайки й питати спільноту. Реєстрація безкоштовна: вхід через Google займає кілька секунд.

Увійти через Google Інші способи входу