Как создать виртуальное окружение Python в Ubuntu

Python остаётся одним из самых популярных и универсальных языков. На Linux, Windows и macOS он питает десятки тысяч приложений. Начиная с Ubuntu 23.04 поведение системных пакетов изменилось: прямой вызов pip install может быть заблокирован политикой управления пакетами. Поэтому лучше работать через виртуальные окружения.
Почему виртуальные окружения Python важны на Ubuntu

Раньше на Linux достаточно было установить Pip и выполнить:
pip install some_appPip скачивал пакет с PyPI, разрешал зависимости и устанавливал всё в глобальное окружение пользователя или системы. Но конфликты зависимостей и пересечения с пакетами APT создавали проблемы. Начиная с Ubuntu 23.04 вызов pip install из глобального окружения часто приводит к ошибке «externally-managed-environment», и система предлагает установить пакет через APT — что зачастую невозможно для многих Python-приложений.
Виртуальное окружение решает эти проблемы: оно изолирует Python, Pip и зависимости в отдельной директории. Каждому проекту можно дать своё окружение, чтобы разные версии библиотек не мешали друг другу и системе.
Как создать виртуальное окружение Python в Ubuntu

- Установите пакет для создания окружений:
sudo apt install python3-venv- Создайте окружение в домашней директории (пример):
python3 -m venv ~/cool_python_appsЭта команда создаст папку ‘cool_python_apps’ в домашней директории. Внутри будет структура каталогов с исполняемыми файлами Python и Pip в подпапке ‘bin’.
- Установить приложение можно, вызвав Pip из этого окружения напрямую. Например, установить терминальное приложение Castero:
~/cool_python_apps/bin/pip3 install casteroУстановленный бинарный файл также окажется в подпапке ‘bin’ окружения и доступен по полному пути.
Вернуть старое поведение Pip на Ubuntu
Если вы хотите работать так, как раньше, можно создать одно глобальное виртуальное окружение для всех пользовательских пакетов и подменить вызов pip3:
python3 -m venv ~/cool_python_appsДобавьте алиас для pip3:
echo 'alias pip3=~/cool_python_apps/bin/pip3' >> .bashrcsource .bashrcОбновите PATH, чтобы директория ‘bin’ окружения была в начале:
export PATH=~/cool_python_apps/bin:$PATHПосле этого вы сможете выполнять:
pip3 install package_nameПри необходимости повторите аналогично для pip, pip3.11 и других бинари.
Когда виртуальные окружения не подходят
- Если вы разворачиваете системный пакет, который должен управляться через APT или если вам нужен интегрированный системный сервис — лучше использовать APT/snap/flatpak.
- В окружениях с ограниченными правами (CI/CD агенты с особенностями) может потребоваться контейнеризация (Docker).
- Если проект использует глобально установленные расширения, простое виртуальное окружение может не подойти.
Альтернативные методы установки и их плюсы/минусы
- APT: хорошо для системных, стабильных пакетов; пакеты могут быть устаревшими.
- snap/flatpak: изолированная упаковка приложений; удобна для десктопных приложений, но не всегда для CLI-утилит.
- pipx: устанавливает и запускает приложения Python в отдельном окружении и делает их доступными в системе; отличен для CLI-приложений.
- Conda: окружения и менеджмент зависимостей для научных стэков; тяжелее для простых задач.
- Docker: полная изоляция окружения и системы; хорош для продакшена и CI.
Краткая методика: шаги одной строкой
- Установите python3-venv.
- Создайте окружение: python3 -m venv ~/myenv.
- Активируйте при необходимости: source ~/myenv/bin/activate.
- Установите пакеты: pip install package.
Шпаргалка команд
# Установить модуль создания venv
sudo apt install python3-venv
# Создать venv
python3 -m venv ~/myenv
# Активировать venv (bash/zsh)
source ~/myenv/bin/activate
# Установить пакет внутри venv
pip install package_name
# Выйти из venv
deactivate
# Быстрая установка CLI-пакета без активации
~/myenv/bin/pip3 install some-cliЧек-листы по ролям
Разработчик:
- Установить python3-venv.
- Создать окружение на уровне проекта.
- Добавить requirements.txt и virtualenv в .gitignore.
Системный администратор:
- Не изменять системные пути Python.
- Использовать APT/snap/flatpak для системно-важных приложений.
- Рассмотреть Docker для изоляции сервисов.
Начинающий пользователь:
- Создайте одно окружение для экспериментов.
- Освойте команды activate/deactivate.
- Используйте pipx для отдельных CLI-утилит.
Советы по совместимости и миграции
- Пакет называется python3-venv в Ubuntu; в других дистрибутивах имя может отличаться.
- Если проект требует конкретной версии Python, установите соответствующую версию (например, python3.11) через APT или pyenv, затем создавайте venv на её основе.
- Для инфраструктурных деплоев используйте контейнеры или инструменты управления зависимостями (poetry, pipenv, conda).
Упрощённая таблица выбора
| Сценарий | Лучший выбор |
|---|---|
| CLI-приложение для одного пользователя | venv или pipx |
| Системный сервис | APT / system package |
| Научные библиотеки с бинарными зависимостями | Conda |
| Изоляция для деплоя/CI | Docker |
Ментальные модели и ориентиры
- Разделяй и властвуй: одно окружение — один проект. Так вы минимизируете конфликты зависимостей.
- Система управляет системными пакетами, вы — своими проектными зависимостями.
- Если нужна повторяемость и переносимость — упакуйте окружение в контейнер или опишите зависимости (requirements.txt, pyproject.toml).
Критерии приёмки
- pip внутри окружения устанавливает пакет без ошибок.
- Установленные зависимости не влияют на системный Python.
- Для CLI-приложений исполняемые файлы доступны из ‘bin’ окружения или через PATH.
Mermaid: выбор способа установки
graph LR
A[Нужно установить приложение] --> B{CLI или сервис?}
B -->|CLI лично| C[venv или pipx]
B -->|Системный сервис| D[APT / system package]
B -->|Научный стек| E[Conda]
B -->|Деплой/CI| F[Docker]Важные замечания
Важно: не удаляйте системные пакеты Python через apt без понимания последствий — это может поломать компоненты системы. Используйте виртуальные окружения или контейнеры, когда нужно изолировать зависимости.
Примечание: pipx — отличный выбор, если вы хотите быстро установить и запускать отдельные CLI-инструменты, не создавая вручную окружение для каждого.
Краткое резюме
Виртуальные окружения — это простой и надёжный способ установить и изолировать Python-пакеты на Ubuntu, особенно после изменений в политике управления пакетами в версиях начиная с 23.04. Установите python3-venv, создайте окружение для проекта и используйте Pip внутри него. Для системных задач и деплоя рассмотрите альтернативы: APT, snap, pipx, conda или Docker.
Источник изображений: файлы в статье.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента