Серверы AMD EPYC / Ryzen ⭐ РФ, Европа, США ⭐ Порты 1–10 Гбпс ⭐ 1–10 Гбпс ⭐ Скидка 12%

20.12.2024

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

server one
HOSTKEY

1. Что такое виртуальное окружение?

Изучаете, как создать виртуальное окружение в Python? Вы попали по адресу! В этой статье мы рассмотрим основные параметры и научим вас с ним работать.

Виртуальное окружение — это изолированная среда, позволяющая устанавливать и использовать пакеты Python отдельно от глобальной установки. Представьте виртуальное окружение как отдельный рабочий стол для каждого проекта. Вы можете установить необходимые библиотеки и модули только в этом окружении, не беспокоясь о влиянии на другие проекты или вашу глобальную систему Python.

Это особенно важно при работе с проектами, использующими разные версии библиотек. Без виртуальных окружений вы рискуете столкнуться с конфликтами версий и неожиданными ошибками. Например, проект A может требовать Flask 2, а проект B — Flask 3. Виртуальные окружения позволяют установить разные версии библиотек для каждого проекта, обеспечивая независимость и стабильность работы.

2. Где и как виртуальное окружение сохраняет зависимости?

При создании виртуального окружения оно создает отдельную папку (по умолчанию venv), где хранятся все установленные пакеты и конфигурации. Обычно оно создается в домашней директории пользователя, так как не рекомендуется создавать и работать в виртуальных окружениях от root.

Путь Содержимое
venv/bin Содержит исполняемые файлы Python, pip и другие инструменты для работы с виртуальным окружением.
venv/lib Хранит библиотеки Python и модули, установленные в окружении.
venv/env Путь до конфигураций виртуального окружения: версии Python, установленных пакетов и других настроек.

3. Сравнение с глобальными установками пакетов

Можно возразить, что проще поставить пакеты непосредственно в операционную систему и не мучаться с виртуальными окружениями. На первый взгляд это так, но глобальная установка пакетов из репозиториев имеет свои существенные недостатки:

  • Конфликты версий.

    Если разные проекты зависят от разных версий одного и того же пакета, это может привести к конфликтам. При глобальной установке эти конфликты возникают, так как система не знает, какую версию библиотек использовать для каждого проекта.

  • Загрязнение системы.

    Глобальная установка всех библиотек занимает много места и может замедлить работу системы. Все пакеты устанавливаются в общую директорию, что может привести к накоплению ненужных файлов.

Виртуальные окружения решают эти проблемы, так как предоставляют:

  • Изоляцию проектов.

    Каждое виртуальное окружение имеет свою копию зависимостей, что предотвращает конфликты версий. Проект A может использовать версию 2.0 библиотеки numpy, а проект B — версию 2.2 без возникновения конфликтов.

  • Оптимизацию ресурсов.

    Только необходимые библиотеки устанавливаются в конкретное виртуальное окружение, экономя место и ресурсы системы. Не нужно скачивать и хранить все пакеты на компьютере, что ускоряет работу системы и освобождает место на диске.

  • Упрощение работы с пакетами.

    Виртуальные окружения позволяют легко управлять зависимостями для каждого проекта. Можно легко установить, удалить или обновить пакеты только в конкретном виртуальном окружении без влияния на другие проекты.

Кроме вышеуказанных преимуществ виртуальные окружения представляют:

  • Повышенную безопасность.

    Виртуальные окружения изолируют проекты друг от друга, что снижает риск заражения системы вредоносным ПО.

  • Упрощение процесса деплоя.

При развертывании проекта на сервере можно легко скопировать директорию с виртуальным окружением и быть уверенным, что все необходимые зависимости будут доступны после его активации на новой машине. Если вы посмотрите на крупные Python-проекты, то зачастую они как раз распространяются в виде виртуальных окружений (или создают их при развертывании).

4. Как создать виртуальное окружение?

Создание виртуального окружения в Ubuntu

Для начала нужно проверить, какая версия Python установлена в системе:

Python3-version

В Ubuntu 22.04 по умолчанию установлен Python 3.10.

Затем нужно установить пакет для поддержки виртуального окружения:

sudo apt install python3-venv

После можно создать виртуальное окружение командой:

python3 -m venv my_project_env

Замените my_project_env на желаемое имя вашего виртуального окружения.

Создание виртуального окружение в Windows

Откройте командную строку. Для этого нажмите Win+R, введите cmd и нажмите Enter.

Используя команду cd перейдите в директорию вашего проекта:

cd C:\Users\YourUserName\Documents\MyProject

Создайте виртуальное окружение с именем my_project_env.

python -m venv my_project_env

5. Активация окружения

После создания виртуальное окружение нужно активировать:

  1. Linux/macOS:

    source my_project_env/bin/activate
  2. Windows:

    my_project_env\Scripts\activate

В активном окружении имя вашего виртуального окружения будет отображаться в начале командной строки.

При активации виртуального окружения в Python могут возникнуть следующие проблемы:

  • Неправильный путь к исполняемому файлу.
  • Если вы не укажете правильный путь к исполняемому файлу Python при активации виртуального окружения (например source venv/bin/activate), система может не распознать его и выдаст ошибку.
  • Недостающие права доступа.
  • Если у вас недостаточно прав на запись в каталог, где создано виртуальное окружение, вы не сможете активировать его.
  • Несовместимость Python-версий.
  • Активация виртуального окружения может привести к конфликту, если используемая версия Python в окружении не совместима с установленными версиями в системе.
  • Проблемы с конфигурацией.
  • Если у вас есть проблемы с конфигурацией виртуального окружения или файлами установщика (например pip), это может привести к ошибкам при активации виртуального окружения.
  • Неправильный путь к файлу активации.
  • Если вы активируете виртуальное окружение с неправильным путем к файлу активации (activate), система не сможет найти его и выдаст ошибку.
  • Неправильно установленные пакеты.

Если пакеты были неправильно установлены в виртуальное окружение, это может привести к ошибкам при запуске проекта.

6. Деактивация окружения

Чтобы выйти из активного виртуального окружения, используйте команду deactivate. Приглашение командной строки вернет свой вид на прежний, как при логине под обычным пользователем.

7. Как использовать другую версию Python в виртуальном окружении

Как было описано ранее, вы можете установить виртуальные окружения для разных версий Python. Давайте создадим виртуальное окружение для Python 3.11.

Установите Python 3.11 и пакеты поддержки виртуального окружения для этой версии

sudo apt install python3.11
sudo apt install python3.11-venv

Создайте виртуальное окружение для этой версии Python

python3.11 -m venv my_project_311env

Активируйте виртуальное окружение:

source my_project_311env/bin/activate

Проверьте версию Python внутри виртуального окружения:

python-version

Затем выйдите из виртуального окружения командой deactivate и зайдите в окружение my_project_env. Проверьте там версию Python:

Теперь у вас есть два разных виртуальных окружения с разными версиями Python.

Другие статьи

05.12.2025

Разворачиваем Proxmox VE 9: Исчерпывающая инструкция по установке и эксплуатации

Этот гайд поможет быстро и без проблем развернуть Proxmox VE 9. Разбираем все шаги: от первого входа и настройки сети до запуска VM, LXC и автоматических бэкапов. Четкие инструкции, практические советы и решения частых проблем.

03.12.2025

Пишем LLM бенчмарк для GPU-серверов с картами NVIDIA в Ollama

HOSTKEY разработала свой LLM-бенчмарк для GPU-серверов с NVIDIA. Тест проверяет работу Ollama под нагрузкой, измеряет скорость инференса и выявляет, как разные GPU ведут себя при генерации больших контекстов. Полный скрипт доступен на GitHub.

28.11.2025

Когда облако становится дорогим — переходим на выделенный сервер!?

В какой момент логично перейти на выделенный сервер и что вы получите взамен? Рассказываем о реальных цифрах, архитектуре и плюсах перехода.

28.11.2025

Как работает облако на самом деле. Простое объяснение на реальном примере.

Облако это гибкая и экономичная модель, которая подстраивается под нагрузку и помогает бизнесу расти без лишних затрат. На простом, но реалистичном примере разбираемся, как всё устроено внутри и почему облачные подходы в некоторых случаях выигрывают у традиционного хостинга.

29.10.2025

Осенние будни DevOps: Debian 13 и Proxmox VE 9.0 в продакшене HOSTKEY

Новая версия Debian 13 и релиз Proxmox VE 9.0 пришли почти одновременно, вызвав ажиотаж у клиентов. В статье рассказываем, как команда HOSTKEY адаптировала свои процессы, автоматизировала деплой и подготовила инфраструктуру под свежие релизы.

Upload