Как установить virtualenv windows

Virtualenv: руководство по виртуальному окружению Python

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

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

Установка virtualenv

Virtualenv — это просто пакет, доступный в pypi, вы можете использовать pip для его установки.

После установки вам может потребоваться добавить C:\Python34\Scripts в переменную среды PATH. Таким образом, такие команды, как pip и virtualenv можно будет выполнять из любой директории.

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

Создайте новую директорию с именем python_project и измените текущую рабочую директорию на python_project:

Чтобы создать виртуальное окружение внутри python_project, вам нужно выполнить следующую команду:

Это создаст новую директорию my_env внутри python_project. Эта директория будет содержать копию интерпретатора python и копию исполняемого файла pip. Здесь мы использовали my_env в качестве имени, но вы можете использовать любое другое имя. Теперь ваше виртуальное окружение готово к использованию, вам просто нужно его активировать.

В этом руководстве есть один момент: мы установили virtualenv используя python 3.4. Предположим, у вас также есть python 2.7 и вы хотите создать виртуальное окружение, используя python 2.7 вместо python 3.4, вы можете сделать это с помощью следующей команды:

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

Для Windows выполните следующую команду:

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

Обратите внимание на (my_env) , это означает, что вы сейчас работаете в виртуальном окружении.

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

Давайте попробуем установить пакет requests.

В Windows введите следующее:

Вы не можете ввести просто pip install requests в windows, потому что будет вызываться глобальный pip, если вы добавили C:\Python34\Scripts в переменную среды PATH. Если вы не добавили, то вы получите ошибку.

В Linux вам нужно ввести следующее:

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

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

Эта команда вернет вас обратно в системный интерпретатор python по умолчанию, где вы можете установить пакет в общесистемное окружение.

Теперь вы должны видеть преимущества использования virtualenv. Это помогает нам изолировать зависимости (пакеты) проектов избегая конфликтов.

Использование виртуальных сред venv и virtualenv для создания окружения Python

Виртуальные среды (окружения) используются в Python 3 контроля версионности пакетов. Кроме контроля версий среды используют для использования разных интерпретаторов. Самих пакетов, которые создают виртуальные окружения много. В этой статье речь пойдет про venv, virtualenv и virtualenvwrapper.

Читайте также:  Не отвечает видеодрайвер nvidia для windows

Навигация по посту

Для чего нужно виртуальные среды?

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

  1. Нужные пакеты отсутствуют на новом компьютере и придется проверять каждый файл программы для их поиска. Либо получить список установленных пакетов через «pip list» на старом компьютере, который выведет множество лишних модулей.
  2. Даже если количество пакетов или файлов программ маленькое, или вы его создали отдельно, то вы все равно можете столкнуться с проблемами в версиях. Пакеты могли быть обновлены, а методы и классы изменены.

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

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

Установка и создания окружения с virtualenv

Самый популярный пакет, который используется для создания виртуальных сред в Python, это virtualenv. Для его установки на Windows выполните:

Для установки на Linux системах, для Python 3, понадобится выполнить такую команду:

Если вы не будете использовать sudo, то в зависимости от версии ОС у вас появятся разные ошибки. В CentOS установка не выполнится вовсе, а в Ubuntu не будет добавлен путь в переменную окружения:

  • PermissionError: [Errno 13] Permission denied: ‘/usr/local/lib/python3.6’
  • Command ‘virtualenv’ not found, but can be installed with: sudo apt install virtualenv

Далее, вне зависимости от того используете ли вы Linux или Windows, вы можете выполнить команду получения справки:

Я использую Python 3.6, и так я создам окружение в папке projectname/venv:

Способ выше устанавливает окружение относительно текущего пути. Если нужно установить на другом диске или каталоге, то можно использовать абсолютный путь. Так же не обязательно указывать параметр «-p» если вы используете одну версию Python. Вариант как это может быть сделано на Windows:

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

Активация и выход из окружения

Для того что бы виртуальное окружения начало работать его нужно активировать. В разных ОС это делается по-разному.

В случаях с Linux указываем полный путь до venv/bin/activate:

Для активации в Windows, в папке venv\Scripts есть несколько файлов:

  • activate.ps1 — для активации через Powershell;
  • activate.bat — для активации через CMD.

Для активации просто укажите полный путь до файла. Например:

О том что вы находитесь в виртуальном окружении свидетельствуют следующие надписи:

Вы так же можете сравнить количество установленных пакетов внутри виртуального окружения с тем, что установлено вне:

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

Для выхода из окружения, за исключением запуска с помощью CMD, используйте команду:

Для CMD нужно указать путь до файла «venv\Scripts\deactivate.bat».

Управление средами через virtualenvwrapper

Если вы создаете множество виртуальных сред, например для тестирования в разных версиях Python, вы можете использовать virtualenvwrapper. Этот пакет представляет собой надстройку для virtualenv для более удобной работы и устанавливается отдельно.

Читайте также:  Папки windows безопасно удалить

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

Для Windows нужно установить следующий пакет:

Для Linux нужно так же использовать sudo:

Настройки для Linux

Virtualenvwrapper хранит все окружения в одном месте. Это место определяется через переменную WORKON_HOME в Linux и по умолчанию равно директории ‘/home/пользователь/.virtualenvs’. Если вы хотите изменить это расположение — выполните команду экспорта с нужным путем:

Следующая команда добавит скрипты в домашний каталог для удобной работы:

При выполнении предыдущей команды у меня появилась ошибка:

virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader

Она исправилась добавлением переменной в env с путем до нужного интерпретатора:

Настройки для Windows

Все виртуальные среды, которые будут созданы, по умолчанию будут располагаться по пути «C:\Users\%USERNAME%\Envs». Если вам нужно изменить расположение, то создайте переменную WORKON_HOME с нужной директорией:

Важный момент, в случае с Windows, команды virtualenvwrapper не будут выполняться Powershell. Команды работают только через CMD.

Основные команды

Далее мы можем использовать следующие команды (основные):

  • mkvirtualenv — создание окружения;
  • lsvirtualenv — отображение списка окружений;
  • rmvirtualenv — удаление;
  • workon — переключение между виртуальными средами;
  • deactivate — выход из текущего окружения.

Так мы создадим виртуальную среду:

Так выйдем из созданной среды:

Если нужно использовать другую версию Python:

Создание виртуальных сред со встроенным пакетом Python venv

Ранее, до версии Python >= 3.6 базовая установка интерпретатора шла вместе с пакетом pyenv, но на данный момент он считается устаревшим и более не поддерживается. На его смену пришел venv. В некоторых версиях ОС (Ubuntu/Debian) может потребоваться его отдельная установка:

Проверить, то что пакет venv установлен, можно так:

Следующая команда создаст виртуальную среду:

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

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

Для выхода из окружения:

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

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

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

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

Для настройки окружения для старых проектов нужно зайти в настройки:

Во вкладе «Python Interpreter» будет выбор из существующих интерпретаторов (1). Либо можно создать новый (2):

Создание списка установленных пакетов Requirements.txt

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

Так мы получим список пакетов, установленных в виртуальном окружении, в формате читаемом pip:

Следующим способом мы экспортируем этот список в файл Requirements.txt (способ подходит для Bash/CMD/Powershell):

На другом компьютере/среде мы можем этот список быстро проверить и установить отсутствующие пакеты следующей командой:

Установка и использование модуля virtualenv для Python.

В материале рассматривается установка модулем virtualenv для Python 2.7. и работа с виртуальным окружением.

Что бы использовать виртуальное окружение в Python 3.5 и выше, используйте встроенный модуль venv .

Читайте также:  Monitoring the system linux

Установка virtualenv в Python 2.7.

Внимание! Сторонний модуль virtualenv для Unix систем необходимо устанавливать под версию python, которая используется операционной системой по умолчанию.

Для начала использования virtualenv , ее нужно установить. Виртуальное окружение будем ставить в систему, т. к. виртуальная среда системой ни как не используется. Это первое и последнее, что устанавливается в систему.

Помним, что поставляемый с Unix системами Python не имеет пакетного менеджера pip , следовательно модуль virtualenv , необходимо устанавливать из пакетов операционной системы, при помощи пакетного менеджера apt-get или используя флаг -m интерпретатора Python. Пользователям Windows, то же будет интересно yзнать о таком методе установки пакетов, не входящих в стандартную библиотеку.

Для Unix систем предпочтительней использовать установку уже скомпилированного модуля virtualenv под используемую по умолчанию версию Python операционной системы, командой sudo apt install python-virtualenv .

Если в вашей системе по умолчанию используется версия Python3, то модуль virtualenv можно установить следующей командой:

Обратите внимание, что в Debian, установленный таким образом модуль virtualenv для python3 может не заработать. В таком случае, необходимо файл virtualenv.py запускать вручную или, для удобства создать командный файл. В дистрибутивах Ubuntu, такой проблемы не замечено.

Так же для версий Python 3.5 и выше, для создания виртуальных сред, можно использовать встроенный модуль venv . В этом случае устанавливать ничего не надо. Обратите внимание, что функциональность и приемы использования встроенного модуля venv сильно отличается от стороннего модуля virtualenv .

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

Перенос экземпляра системного Python или того, который мы установили:

Где /path/to/python-3.x.x/bin/python путь до бинарного файла, нужного нам интерпретатора Python например /opt/python-3.7.4/bin/python или для Windows c:\python-3.7.4\bin\python

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

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

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

Для удаления virtualenv, просто удалите директорию с виртуальным окружением

Справочное руководство virtualenv.

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

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

Опции:

  • -version : показывает установленную версию virtualenv
  • -h , —help : показать это справочное сообщение и выйти
  • -v , —verbose : увеличивает вывод информации.
  • -q , —quiet : уменьшает вывод информации.
  • -p PYTHON_EXE , —python=PYTHON_EXE : используемый интерпретатор Python, например, —python=/opt/python-3.7.4/bin/python будет использовать интерпретатор из директории /opt/python-3.7.4/bin/python для создания новой среды. По умолчанию используется интерпретатор, с которым был установлен virtualenv.
  • —clear : очищает установку, что бы начать с нуля.
  • —system-site-packages : передает виртуальной среде доступ к глобальным пакетам.
  • —always-copy : копирует файлы, а не символические ссылки.
  • —relocatable : делает СУЩЕСТВУЮЩУЮ среду virtualenv перемещаемой. Это исправляет сценарии и делает все файлы .pth относительными.
  • —unzip-setuptools : разархивирует Setuptools при установке.
  • —no-setuptools : не устанавливает setuptools в новом virtualenv.
  • —no-pip : не устанавливает pip в новом virtualenv.
  • —extra-search-dir=DIR : каталог для поиска дистрибутивов pip. Эту опцию можно указывать несколько раз.
  • —prompt=PROMPT : предоставляет альтернативный префикс приглашения для этой среды.
  • —download : загружает предустановленные пакеты из PyPI.
  • —no-download : не загружает предустановленные пакеты из PyPI.
  • —no-site-packages : РЕКОМЕНДУЕТСЯ. Отсутствие доступа к пакетам переносимого Python в виртуальное окружение, теперь является поведением по умолчанию.
Оцените статью