Python, pip и venv на Ubuntu: как ставить библиотеки
Python в Ubuntu уже стоит: команда python3. Библиотеки через pip ставят не в систему, а в виртуальное окружение — отдельную папку приложения. Без окружения pip в Ubuntu откажется работать с ошибкой externally-managed-environment.
Содержание 8
Что сделать прямо сейчас
Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
- Проверьте Python:
python3 --version. Ответ начинается сPython 3.12в Ubuntu 24.04 илиPython 3.14в Ubuntu 26.04. - Обновите список пакетов:
sudo apt update. - Поставьте venv и pip:
sudo apt install python3-venv python3-pip. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter. На вопросDo you want to continue? [Y/n]нажмите Y и Enter. - Создайте виртуальное окружение в папке приложения и включите его — команды ниже.
- Ставьте библиотеки командой
pip installтолько во включённом окружении.
Какая версия поставится
| Ubuntu | Python | pip | Поддержка Python разработчиками |
|---|---|---|---|
| 24.04 | 3.12.3 | 24.0 | до октября 2028 года |
| 26.04 | 3.14.3 | 25.1.1 | до октября 2030 года |
Номера версий взяты со страниц пакетов Ubuntu на 14 октября 2026 года, сроки поддержки — из разбора Хостинг для Python и Node.js. Команда в Ubuntu — python3, внутри включённого окружения работает и python.
Python в Ubuntu ставится вместе с системой: документация Ubuntu Server так и пишет. Пакеты python3-venv и python3-pip нужно поставить самим, они лежат в разделе universe.
Почему pip ругается без окружения
Если набрать pip install вне окружения, pip откажется ставить библиотеку. Первая строка ответа:
error: externally-managed-environmentТак задумано: Python в Ubuntu нужен самой системе, и его библиотеками управляет apt. В Ubuntu лежит файл-метка EXTERNALLY-MANAGED (/usr/lib/python3.12/ в 24.04, /usr/lib/python3.14/ в 26.04). Увидев его, pip не трогает системный Python и предлагает виртуальное окружение. Создайте его — и pip заработает.
sudo pip: чужая версия библиотеки может сломать программы Ubuntu, которые написаны на Python.Виртуальное окружение venv
Окружение — папка с собственной копией pip и библиотек для одного приложения. У каждого приложения на сервере — своё окружение, и они друг другу не мешают. Перейдите в папку приложения и создайте окружение в подпапке venv:
cd /home/ivan/myapp
python3 -m venv venvВключите окружение:
source venv/bin/activateВ начале строки ввода появится (venv): теперь python и pip работают внутри окружения. Ставьте библиотеки:
pip install requestsЕсли у приложения есть файл requirements.txt со списком библиотек, поставьте всё сразу: pip install -r requirements.txt. Выключить окружение — deactivate.
Включать окружение каждый раз не обязательно: можно запускать его Python по полному пути, например /home/ivan/myapp/venv/bin/python app.py. Так и делают в службе.
Как запустить приложение службой
Чтобы приложение на Python работало без перерыва и запускалось само после перезагрузки сервера, сделайте его службой systemd. Создайте файл службы:
sudo nano /etc/systemd/system/myapp.serviceВставьте в файл. Вместо app.py — главный файл вашего приложения; у фреймворков команда запуска своя, она есть в их документации:
[Unit]
Description=Приложение на Python
After=network.target
[Service]
User=ivan
WorkingDirectory=/home/ivan/myapp
ExecStart=/home/ivan/myapp/venv/bin/python app.py
Restart=on-failure
[Install]
WantedBy=multi-user.targetВместо ivan — ваш пользователь на сервере, вместо /home/ivan/myapp — папка приложения. Сохраните файл: Ctrl+O, Enter, затем Ctrl+X. Включите и запустите службу:
sudo systemctl daemon-reload
sudo systemctl enable --now myappПроверьте: sudo systemctl status myapp — в ответе должно быть active (running). Если приложение упадёт, Restart=on-failure перезапустит его. Что приложение писало перед сбоем, покажет sudo journalctl -u myapp. Остальные команды для служб — Команда systemctl.
Посетители пока не видят приложение: оно слушает порт на самом сервере. Поставьте перед ним nginx — настройка в разделе Если сайт — приложение на Node.js или Python инструкции по размещению сайта.
Ошибки и как их исправить
| Что видите | Что делать |
|---|---|
error: externally-managed-environment | создайте и включите окружение — как |
python3 -m venv не создаёт окружение и выдаёт ошибку | поставьте пакет: sudo apt install python3-venv |
| система не находит команду python | в Ubuntu команда — python3; python работает во включённом окружении |
| система не находит команду pip | включите окружение: source venv/bin/activate |
| 502 Bad Gateway в браузере | приложение не запущено или слушает другой порт: sudo systemctl status myapp, разбор ошибки |
Unable to locate package python3-venv | apt не нашёл пакет |
Источники
- Пакет python3 в Ubuntu 24.04 — Python 3.12.3.
- Пакет python3 в Ubuntu 26.04 — Python 3.14.3.
- Пакет python3-pip в Ubuntu 24.04 — pip 24.0, раздел universe.
- Пакет python3-pip в Ubuntu 26.04 — pip 25.1.1, раздел universe.
- Файлы пакета libpython3.12-stdlib в Ubuntu 24.04 — метка /usr/lib/python3.12/EXTERNALLY-MANAGED.
- Python Packaging: Externally Managed Environments — зачем нужна метка и что делает pip, увидев её.
- Исходный код pip 24.0: exceptions.py — ошибка externally-managed-environment.
- Документация Python: venv — создание окружения, запуск без включения по полному пути.
- Учебник Python: виртуальные окружения — source, deactivate, requirements.txt.
- Документация Ubuntu Server: Install PHP — Python в Ubuntu уже установлен.
- Справка systemd.service для Ubuntu 24.04 — Restart=on-failure — перезапуск после сбоя, ExecStart — команда запуска.
- Справка systemd.exec для Ubuntu 24.04 — User= и WorkingDirectory= — от чьего имени и в какой папке работает служба.
Сверено 14 октября 2026 года.
Что почитать дальше
- Как разместить сайт на VPSдомен, nginx и HTTPS для приложения.
- Хостинг для Python и Node.jsкогда хватит хостинга, а когда нужен VPS.
- Как установить Node.js на Ubuntuесли приложение на Node.js.
- Как установить Git на Ubuntuкак забрать код приложения из репозитория.
- Установка программ на Ubuntuчто ещё поставить для сайта.