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

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

  • автор:

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

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

Python используется в таких сферах, как:

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

Что такое виртуальное окружение Python

Виртуальное окружение Python (Python virtual environment) – это инструмент, позволяющий создавать изолированные среды для выполнения и разработки приложений на языке Python.

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

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

  1. Изоляцию зависимостей. Каждое виртуальное окружение имеет собственный независимый набор зависимостей и пакетов, что позволяет избежать конфликты между различными версиями пакетов.
  2. Управление версиями Python. Вы можете создавать и использовать различные версии Python в разных виртуальных окружениях, переключаясь между версиями, а также тестируя совместимость кода с новыми версиями Python.
  3. Чистоту проекта. Виртуальное окружение помогает поддерживать проект организованным, так как все зависимости и пакеты проекта хранятся в отдельной директории. Это упрощает управление и развертывание проектов.
  4. Переносимость. Вы можете передать виртуальное окружение на другую машину или другим разработчикам, что позволяет вести совместную работу над проектом.

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

Услуга VPS/VDS хостинг на Linux подойдет для проектов любой сложности:

  • разработка приложений,
  • создание почтового сервера,
  • размещение интернет-магазина,
  • развертывание продуктов 1С,
  • размещение CRM-систем.

Создание виртуальной среды Python

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

Для создания виртуального окружения в Python рекомендуем использовать встроенный модуль venv. Если вы используете версию Python 3.3 или выше, то модуль venv уже включен в стандартную библиотеку и его установка не требуется. Для установки модуля в более ранних версиях Python выполните команду:

pip install virtualenv

Далее следуйте инструкции:

  1. Откройте командную строку и перейдите в каталог, в котором будет создана виртуальная среда.
  2. Выполните команду:

python -m venv virt_name

где virt_name – имя вашей виртуальной среды.

  1. Дождитесь завершения процесса создания виртуальной среды. Это может занять некоторое время.
  2. Ваша виртуальная среда будет создана в папке virt_name. В ней же будут находиться все файлы и зависимости, связанные с виртуальной средой.

Активация виртуальной среды Python

Процесс активации виртуальной среды может быть выполнена различными способами в зависимости от используемой операционной системы и инструментов виртуализации.

Активируйте виртуальное окружение с помощью команд:

  • Для Windows: .\Scripts\activate
  • Для macOS и Linux: source bin/activate

При успешной активации на экране отобразится:

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

Если вы используете инструмент управления пакетами, такой как pipenv или poetry, вы можете создать и активировать виртуальную среду одной командой.

  • Для pipenv: pipenv shell
  • Для poetry: poetry shell

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

Автоматическая активация виртуальной среды Python

Для включения автоматической активации виртуальной среды при открытии терминала или командной строки, вам потребуется внести следующие изменения в файл конфигурации вашей оболочки (например, .bashrc для Bash или .zshrc для Zsh).

Приведем пример для оболочки Bash:

  1. Откройте файл конфигурации в текстовом редакторе и введите в терминале:
  1. В конце файла добавьте следующую строку, указывающую на активацию вашей виртуальной среды:

Замените /path/to/your/virtual/environment на путь к вашей виртуальной среде Python (например, /home/user/virt_name).

  1. Сохраните изменения и закройте файл конфигурации.
  2. Обновите текущую сессию оболочки, чтобы изменения вступили в силу:

Замените `~/.bashrc` на путь к вашему файлу конфигурации, если он отличается.

Теперь при открытии нового терминала или командной строки ваша виртуальная среда Python будет автоматически активирована. Это позволит использовать установленные в этой среде библиотеки и исполнять команды Python без необходимости активации вручную.

Деактивация виртуального окружения Python

Для деактивации виртуального окружения можно использовать следующую команду в терминале: deactivate.

Если вы работаете на операционной системе Windows, то вам необходимо использовать команду:

После выполнения этой команды виртуальное окружение будет деактивировано, и вы вернетесь в системное окружение Python.

Заключение

Настройка виртуальной среды в Python дает ряд преимуществ и часто рекомендуется разработчикам при выполнении проектов на Python. Чем может быть полезна виртуальная среда:

  1. Позволяет создавать отдельную изолированную среду для каждого проекта. Вы можете устанавливать и управлять зависимостями (библиотеки и пакеты) вашего проекта в изолированной среде, не влияя на другие проекты или систему в целом.
  2. С ее помощью создаются чистые и стабильные окружения для разработки и выполнения проектов. Начать работу можно с чистой виртуальной среды: установить только необходимые зависимости, избегая конфликтов между зависимостями других проектов. Это поможет снизить вероятность возникновения ошибок и облегчит управление зависимостями.
  3. Виртуальное окружение создает единообразную среду для вашего проекта, независимо от операционной системы или окружения разработки. Вы можете легко перенести ваш проект на другую машину или дать другим пользователям работать с вашим проектом.
  4. Управление версиями Python. Вы можете создавать и использовать разные виртуальные среды для различных версий Python, позволяя тестировать и разрабатывать проекты на разных версиях языка.

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

Виртуальные окружения — Python: Настройка окружения

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

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

Очевидно, что разработчику на Python нужен какой-то механизм, позволяющий содержать разные проекты в изолированных песочницах. Такой механизм существует. Он называется виртуальные окружения.

Устройство виртуальных окружений

Каждое виртуальное окружение представляет собой директорию. Ее содержимое структурно напоминает общесистемное окружение — поддиректории соответственно названы и наполнены. Давайте рассмотрим пример:

env env ├── bin │ ├── activate │ … │ ├── pip │ … │ └── python3 -> …/python3 ├── lib │ └── python3.6 │ └── site-packages │ ├── pip │ │ ├── … │ … │ └── setuptools-40.6.2.dist-info │ ├── … … 

В директории виртуального окружения находится директория bin/ , внутри которой расположены:

  • Копия интерпретатора под именем python3 (символическая ссылка на оригинал)
  • Копия исполняемого файла pip

В соседней директории по пути lib/python3.6/site-packages есть библиотеки, уже установленные в окружение. Как правило, только что созданное окружение имеет:

  • Установленный пакет pip (исполняемый файл bin/pip — его точка входа)
  • Пакет Setuptools

Эти два пакета составляют необходимый минимум для разработки проекта на Python.

При работе в окружении нужно запускать не системные Python и pip, а исполняемые файлы из директории bin . Когда интерпретатор Python находится в окружении, он знает, где находятся все доступные пакеты. Интерпретатор находит их по относительному пути ../lib/python3.6 . В таком случае копия pip из директории bin/ устанавливает пакеты в это же окружение, не затрагивая систему. Получается та самая изоляция, о которой мы говорили в начале урока.

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

Вручную создавать всю описанную иерархию директорий и файлов не нужно — для этого есть специальный модуль venv .

В macOS и Windows этот модуль входит в поставку Python. На Ubuntu его нужно установить отдельно командой:

sudo apt install python3-venv 

Проверим, что модуль установился и готов к использованию:

-m venv --help usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR . ] 

Обычно окружение создается командой python3 -m venv имя_окружения . Давайте попробуем создать виртуальное окружение и установить туда пакет cowsay :

Вы можете видеть, что пакет устанавливается вместе с точкой входа, которую можно вызвать командой first_venv/bin/cowsay . Также сам пакет становится доступен интерпретатору, но только тому, что был запущен из окружения.

В таком виде виртуальное окружение уже можно использовать полноценно. Но постоянно вводить команды с префиксом first_venv/bin/ не очень удобно. Есть способ упростить вызов команд, доступных в окружении — это активация.

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

При создании окружения в поддиректорию bin помещается сценарий оболочки, который на macOS и Ubuntu называется activate , а на Windows — activate.bat . Чтобы выполнить этот сценарий, нужно вызвать команду:

  • на macOS и Ubuntu:
source first_venv/bin/activate 
  • на Windows:
\> first_venv\Scripts\activate.bat 

В команде выше обратите внимание, что в Windows поддиректория с исполняемыми файлами называется не bin , а Scripts .

На Ubuntu активация выглядит следующим образом:

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

Еще изменилось приглашение оболочки: в нем стало отображаться имя окружения. Это работает на macOS и Ubuntu и всегда напоминает, что мы находимся в виртуальном окружении.

Деактивация окружения делается командой deactivate , которая становится доступна после активации.

Активация и деактивация окружения влияют только на текущую сессию — то есть заметны только в этом конкретном терминале. Это удобно, потому что так можно иметь несколько окружений и активировать их одновременно в разных окнах терминала.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Виртуальное окружение Python

Виртуальное окружение Python

Virtual Environment (виртуальное окружение) в Python — это инструмент, который позволяет создавать изолированные среды для работы с проектами на Python. Виртуальное окружение содержит свой собственный интерпретатор Python и набор библиотек, которые можно установить и использовать независимо от тех, которые установлены в глобальной системе. Это позволяет избежать конфликтов версий между пакетами и гарантирует, что приложение будет работать так, как задумано, независимо от конфигурации и установки Python на компьютере.

Необходимость такого механизма возникла из-за того, что Python устанавливается глобально в системе. Точно также глобально устанавливаются пакеты PIP, поэтому все модули будут доступны для всех python-программ. Это может вызывать проблемы совместимости, особенно для программ, которым требуются разные версии модулей.

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

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

Чтобы этого избежать, разработчиками Python был придуман механизм виртуального окружения.

Как работает виртуальное окружение Python

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

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

В Python уже встроены все механизмы для работы с виртуальным окружением и они состоят из нескольких этапов:

  • создание виртуального окружения
  • его активация
  • выполнение программы в его рамках
  • деактивация виртуального окружения

Если виртуальное окружение не нужно, то его каталог можно просто удалить.

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

Для создания окружения необходимо запустить консоль в каталоге вашего проекта и выполнить команду:

python -m venv myvenv

Здесь Python использует команду venv , которая создаёт каталог myvenv , в котором будут размещаться все необходимые файлы. Каталог может быть произвольным, чаще всего используют venv , но это дело вкуса.

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

myvenv\Scripts\activate

Это запустит файл activate.bat , который в свою очередь настроит переменные среды на текущий интерпретатор Python, а также локальные pip-модули. В консоли появится подсказка, что-то вроде такого:

(myvenv) user@DESKTOP каталог

Теперь можно запустить свою программу:

python my_prog.py

Она будет выполняться в пределах своего окружения. После того, как программа выполнена, можно деактивировать виртуальное окружение командой:

myvenv\Scripts\deactivate

Либо просто закрыть окно консоли.

Теперь, предположим, ваша программа требует какие-то сторонние модули, которые вы хотите потестировать. Для этого активируем виртуальное окружение и в нём вводим команды для pip:

pip install НУЖНЫЙМОДУЛЬ

Всё как обычно, только в рамках своего окружения. PIP установит модуль локально и он никак не будет влиять на остальных.

Автоматический запуск виртуального окружения

Использование консоли не очень удобно, особенно если вы пишите программы в простом редакторе, вроде NPP, или Sublime Text. Для их запуска потребуется вначале запустить среду, а потом уже программу. Чтобы упростить это дело, можно использовать отдельный bat-файл, например run.bat прямо в каталоге программы:

call myvenv\Scripts\activate.bat python my_prog.py

Такой вариант отлично годится для запуска готовой программы

Virtual Environment при разработке

Во время разработки программ, пользоваться виртуальным окружением может быть не очень удобным. Если у вас много программ, то придётся для каждой из них указывать свой интерпретатор Python (который в myvenv\Scripts ). Поэтому идеальный вариант, когда среда разработки сама понимает существование Virtual Environment текущего проекта и предлагает переключить интерпретатор на доступные (глобальный и локальный).

Так работает Visual Studio Code. Когда вы открываете каталог проекта, то VSCode высветит подсказку, где можно выбрать нужный интерпретатор Python.

Выбор версии Python в Visual Studio Code

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

Python (Русский)/Virtual environment (Русский)

Состояние перевода: На этой странице представлен перевод статьи Python/Virtual environment. Дата последней синхронизации: 28 мая 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

virtualenv — это инструмент, используемый для создания изолированного рабочего пространства для приложения Python. Он даёт некоторые преимущества: например, возможность локальной установки модулей, экспорта рабочей среды и выполнения программы Python внутри этого окружения.

Обзор

Виртуальное окружение (virtual environment) — это каталог, в который устанавливаются некоторые исполняемые файлы и скрипты. Среди файлов есть python для выполнения скриптов и pip для установки других модулей в окружении. Также есть скрипты для активации окружения в различных командных оболочках (для bash, csh и fish). По сути, виртуальное окружение имитирует полную системную установку Python и всех необходимых модулей, не вмешиваясь в работу системы, на которой будет запускаться приложение.

В 2017 году был опубликован Pipenv, который управляет всеми вышеперечисленными инструментами: виртуальными окружениями интерпретаторов python, зависимостями пакетов, их активацией и блокировкой версий в Pipfile.

Установка

Python 3.3+ поставляется с модулем venv. Для более старых версий Python можно использовать сторонний инструмент virtualenv.

Пакеты

Установите один из следующих пакетов:

  • Python 3.3+: python
  • Python 3: python-virtualenv
  • Python 3: python-pipenv

Использование

Все три инструмента похожи.

Создание

Используйте venv или virtualenv для создания виртуального окружения в каталоге вашего проекта. Не забудьте исключить каталог venv из вашей системы контроля версий — для его восстановления достаточно копии pip freeze .

venv

Он входит в состав python (3.3+):

$ python -m venv envname 
virtualenv
$ virtualenv envname 

Активация

Для активации виртуального окружения используйте один из имеющихся скриптов для вашей командной оболочки. Пример для bash:

$ source envname/bin/activate (envname) $

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

Для выхода из виртуального окружения выполните функцию, которую создал скрипт активации:

(envname) $ deactivate

Версии Python

По умолчанию виртуальные окружения создаются с использованием стандартного системного Python. Файл bin/python — это просто символическая ссылка на системный python:

$ ls -l envname/bin/python lrwxrwxrwx 1 foo foo 15 янв 29 18:48 envname/bin/python -> /usr/bin/python

Если вы хотите использовать другую версию Python внутри виртуального окружения, можно использовать опцию -p / —python у virtualenv:

$ virtualenv -p 3.8 envname $ ls -l envname/bin/python lrwxrwxrwx 1 foo foo 18 янв 29 18:48 envname/bin/python -> /usr/bin/python3.8

Также можно использовать pypy3 :

$ virtualenv -p pypy3 envname 

virtualenvwrapper

virtualenvwrapper позволяет более удобно управлять виртуальными окружениями через командную строку, предоставляя несколько полезных команд для создания, активации и удаления виртуальных окружений. Этот пакет является обёрткой для python-virtualenv .

Установка

export WORKON_HOME=~/.virtualenvs source /usr/bin/virtualenvwrapper.sh

Строка source /usr/bin/virtualenvwrapper.sh может несколько замедлить запуск новой командной оболочки. Для решения проблемы можно использовать source /usr/bin/virtualenvwrapper_lazy.sh , который загрузит virtualenvwrapper только при первом обращении к нему.

Перезапустите консоль для применения изменений. Каталог WORKON_HOME будет создан автоматически.

Использование

Подробности можно почитать в официальной документации.

Создание виртуального окружения (все опции командной строки, кроме -a , -i , -r и -h , передаются в virtualenv, так что можно использовать опцию -p для выбора нужной версии Python):

$ mkvirtualenv envname 

Активация виртуального окружения:

$ workon envname 

Установка пакета внутри виртуального окружения (скажем, Django):

(envname) $ pip install django

Выход из виртуального окружения:

(envname) $ deactivate

Pipenv

pipenv упрощает управление через командную строку, предоставляя одну программу, которая выполняет все функции вышеперечисленных инструментов.

Установка

Использование

Все команды можно выполнять в папке проекта, и pipenv распознает текущую ситуацию — найдёт виртуальное окружение в текущем каталоге и будет использовать его.

Подробности в документации: [1], [2], [3].

Смотрите также

  • Python venv
  • Пакет virtualenv на PyPI
  • Документация virtualenvwrapper

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *