Python virtual environments windows

Содержание
  1. Использование виртуальных сред venv и virtualenv для создания окружения Python
  2. Для чего нужно виртуальные среды?
  3. Установка и создания окружения с virtualenv
  4. Активация и выход из окружения
  5. Управление средами через virtualenvwrapper
  6. Настройки для Linux
  7. Настройки для Windows
  8. Основные команды
  9. Создание виртуальных сред со встроенным пакетом Python venv
  10. Создание виртуального окружения в Pycharm
  11. Создание списка установленных пакетов Requirements.txt
  12. Установка и использование virtualenv в Python
  13. Отличия virtualenv и venv
  14. Установка virtualenv с помощью pip
  15. Создание виртуальной среды
  16. Деактивации virtualenv
  17. Удаление виртуальной среды
  18. Решение популярных ошибок
  19. Подписывайтесь на канал в Дзене
  20. Краткий ликбез по Virtual Environments в Python 2.7
  21. Инструмент virtualenv
  22. Создание виртуальной среды Python
  23. Активация виртуальной среды Python
  24. Деактивация виртуальной среды Python
  25. Удаление виртуальной среды Python
  26. Дополнительные замечания
  27. Заморозка пакетов виртуальной среды Python
  28. Импорт пакетов виртуальной среды Python
  29. Инструмент virtualenvwrapper
  30. Создаем среду при помощи команд virtualenvwrapper
  31. Работа над виртуальной средой при помощи команд virtualenvwrapper
  32. Деактивация при помощи команд virtualenvwrapper
  33. Удаление при помощи команд virtualenvwrapper
  34. Другие полезные команды virtualenvwrapper
  35. Инструмент virtualenv-burrito
  36. Инструмент autoenv

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

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

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

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

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

  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.
Читайте также:  Как опубликовать базу 1с linux

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

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

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

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

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

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

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

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

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

Для 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. У такой среды есть отдельна установка python, при ее использовании загруженные библиотеки недоступны другим. Можно сделать так, чтобы у этой среды не было доступа к глобальным библиотекам.

Virtualenv — простой и рекомендованный способ настройки среды Python.

Отличия virtualenv и venv

Venv — это пакет, который идет по умолчанию с Python 3.3+. В версии Python 2 его нет.

Читайте также:  Linux как перенести каталог

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

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

Установка virtualenv с помощью pip

Для установки virtualenv с Python нужно использовать pip. Желательно предварительно обновить этот инструмент.

Или используйте python3 , если python ссылается на 2 версию.

После обновления можно установить и virtualenv:

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

1. Перейдите в директорию, в которой вы хотите создать виртуальную среду(например папка проекта).

2. Создайте виртуальную среду, при необходимости указав конкретную версию Python. Следующая команда создает virtualenv с именем venv_name и использует флаг -p , чтобы указать полный путь к версии Python:

Назвать среду можно как угодно

После выполнения команды вы увидите логи:

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

Если при установке возникла ошибка setuptools pip failed with error code 1` error , используйте следующую команду, чтобы решить проблему:

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

После этого название текущей среды отобразится слева от символа ввода: (venv_name) username@desctop:

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

Деактивации virtualenv

После завершения работы деактивировать виртуальную среду можно с помощью команды deactivate .

Введите ее и приставка venv_name пропадет. Вы вернетесь к использованию глобально версии python.

Удаление виртуальной среды

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

Решение популярных ошибок

Ошибки при создании virtualenv. При попытке создать virtualenv с Python 3.7 могут возникнуть следующие ошибки.

Для их исправления нужно добавить следующую строку в .bash_profile.

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

А получить их можно с помощью этой команды:

Подписывайтесь на канал в Дзене

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

Краткий ликбез по Virtual Environments в Python 2.7

Virtual Environment или виртуальная среда — это инструмент, который позволяет держать и хранить зависимости, требуемые для различных проектов в разделенных хранилищах, которые образуются созданием виртуальных сред. Это может решить проблему, когда проекту X, требуется утилита от версии 1.x, а проекту Y требует эта же утилита, но с версией 4.x. Это позволяет держать и сохранять вашу глобальную директорию пакетов чистым от хаоса и мусора версий утилит и позволяет легко управлять различными версиями утилит в локальной среде.

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

Инструмент virtualenv

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

virtualenv устанавливается через pip:

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

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

Команда virtualenv venv должен создать папку в текущей директории, в котором должны находиться исполняемые файлы Python и копии библиотек pip, которых вы можете использовать для установки других пакетов. Имя виртуальной среды( в нашем случае, это venv) может быть любым. Если не вводить имя, то все эти выполняемые файлы будут находиться в текущей директории без добавления в подпапку.

Читайте также:  Постоянно мигает монитор windows 10

Это создаст копию Python в любой директории, где запустите эту команду, положит его в папку под именем venv.

Вы также можете использовать версию интерпретатора

Данная команда будет использовать интерпретатор в директории /usr/bin/python2.7

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

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

Название текущей виртуальной среды должно появиться в правой части командной строки запроса (т.е. (venv) Your-Computer: your_project UserName$), чтобы вы знали, что она сейчас активна. С текущего момента, любой пакет, который вы установите при помощи pip должен быть перемещен в папку venv, который изолирован от глобальной инсталляции Python.

Устанавливаем пакеты как обычно:

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

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

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

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

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

Через некоторое время вы, возможно, столкнетесь с множеством виртуальных сред, засоренных в вашей системе, и, возможно, вы забудете их имена или место их размещения.

Дополнительные замечания

Запуская команду virtualenv с опцией —no-site-packages не будут включены пакеты, которые установлены глобально. Это может быть полезно для сохранения списка пакетов в случае, если к нему нужно получить доступ позже. [Это поведение по умолчанию для virtualenv 1.7 и поздних.]

Заморозка пакетов виртуальной среды Python

Чтобы ваша среда была последовательной, рекомендуется «заморозить» текущее состояние пакетов среды. Для этого запустите

Эта команда создаст файл requirements.txt, который будет содержать простой список пакетов в текущей среде и их соответствующие версии. Тем самым, вы сможете посмотреть список установленных пакетов без требуемого формата, используя “pip list”.

Импорт пакетов виртуальной среды Python

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

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

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

Инструмент virtualenvwrapper

virtualenvwrapper предоставляет набор команд, которые делают работу с виртуальными средами более приятным и продуктивным. Он также размещает все ваши виртуальные среды в одном месте.

Для установки(перед этим проверьте, что у вас установлен virtualenv)

После этих команд все виртуальные среды будут создаваться в глобальной директории /root/Evns/.

Для Windows. Для пользователей Windows есть специфичная версия под названием virtualenvwrapper-win.

В Windows путь path для WORKON_HOME является %USERPROFILE%/Envs

Создаем среду при помощи команд virtualenvwrapper

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

Это создаст папку виртуальной среды venv внутри

Работа над виртуальной средой при помощи команд virtualenvwrapper

Альтернативно вы можете создать проект, который создаст виртуальную среду, а также директорию проекта внутри $PROJECT_HOME

virtualenvwrapper предоставляет таб-завершение на именах среды. Это реально помогает вам, когда у вас много сред и есть вероятность забыть их имена

Деактивация при помощи команд virtualenvwrapper

Деактивация по-прежнему остается неизменной

Удаление при помощи команд virtualenvwrapper

Другие полезные команды virtualenvwrapper

1) Список всех сред

2) Переход в директорию текущей активной среды, так вы сможете увидеть ее site-packages, к примеру

3) Похож, как и выше, но заходить внутрь site-packages активной текущей среды

4) Покажет содержимое директории site-packages

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

Инструмент virtualenv-burrito

С virtualenv-burrito вы можете иметь рабочую комбинированную среду virtualenv + virtualenvwrapper в одной команде.

Инструмент autoenv

Модуль autoenv позволяет при переходе в директорию, которая содержит .env автомагически активировать среду.

Установка в Linux

Установка в Mac через brew

Оцените статью