Як встановити Python і створити віртуальне середовище: venv, pip і uv
Python на Windows, macOS і Linux, venv і pip, сучасний менеджер uv та рішення помилок externally-managed-environment і ModuleNotFoundError.
Встановити 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) з власним інтерпретатором і власним набором пакетів для кожного проєкту.
На сучасних 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 | shWindows (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 CurrentUsererror: 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 Інші способи входу