- Использование виртуальных сред venv и virtualenv для создания окружения Python
- Для чего нужно виртуальные среды?
- Установка и создания окружения с virtualenv
- Активация и выход из окружения
- Управление средами через virtualenvwrapper
- Настройки для Linux
- Настройки для Windows
- Основные команды
- Создание виртуальных сред со встроенным пакетом Python venv
- Создание виртуального окружения в Pycharm
- Создание списка установленных пакетов Requirements.txt
- Как настроить виртуальное окружение virtualenv для Python3 (Ubuntu)
- Виртуальное окружение virtualenv
- Шаг 0. Проверяем наличие Python3
- Шаг 1. Устанавливаем менеджер пакетов pip (если ещё не установлен)
- Шаг 2. Устанавливаем пакет виртуального окружения virtualenv
- Шаг 3. Создаём каталог для хранения виртуальных файлов
- Шаг 4. Устанавливаем virtualenvwrapper
- Шаг 5. Настройка переменных окружения и
- Шаг 6. Создаём виртуальное окружение
- Создание виртуального окружения с другой версией Python3
- Виртуальное окружение в Python
- Введение
- Создание директории для проекта
- Создание виртуального окружения
- Активация виртуальной среды
- Активация виртуальной среды в Windows
- Активация виртуальной среды в macOS и Linux
- Заключение
Использование виртуальных сред venv и virtualenv для создания окружения Python
Виртуальные среды (окружения) используются в Python 3 контроля версионности пакетов. Кроме контроля версий среды используют для использования разных интерпретаторов. Самих пакетов, которые создают виртуальные окружения много. В этой статье речь пойдет про venv, virtualenv и virtualenvwrapper.
Навигация по посту
Для чего нужно виртуальные среды?
При создании скрипта или программы вы часто используете сторонние модули (пакеты). Если в последующем потребуется перенос программы на другой компьютер, то вы можете столкнуться с двумя проблемами:
- Нужные пакеты отсутствуют на новом компьютере и придется проверять каждый файл программы для их поиска. Либо получить список установленных пакетов через «pip list» на старом компьютере, который выведет множество лишних модулей.
- Даже если количество пакетов или файлов программ маленькое, или вы его создали отдельно, то вы все равно можете столкнуться с проблемами в версиях. Пакеты могли быть обновлены, а методы и классы изменены.
Использование виртуальных сред избавляет вас от этих проблем. В таком виртуальной среде находится свой интерпретатор, свой 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 нужно установить следующий пакет:
Для 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 для Python3 (Ubuntu)
Время чтения: 5 минут
Программируя в Python (да и в любом другом языке с установочными пакетами) в определённый момент функциональности стандартной библиотеки становится недостаточно и приходится прибегать к установке сторонних пакетов-библиотек. В Python для этого используется менеджер установки пакетов pip (для Python3 соответственно pip3 ). Пока проект всего один, всё идёт хорошо, однако в какой-то момент оказывается, что в другом проекте нужен такой же пакет, как уже есть, только другой версии. Такое случается, когда библиотеки активно развиваются и в какой-то момент перестают поддерживать обратную совместимость. В таком случае, можно удалить текущую версию и поставить ту, в которой всё работает. Увы, такое случается довольно редко. В реальности скорее всего необходимо иметь две разных версии одного пакета одновременно. Что же делать?
Виртуальное окружение virtualenv
Для решения конфликта версий был придуман механизм виртуальных окружений (virtual environments). С его помощью можно создать виртуальную среду, в которую можно устанавливать пакеты независимо от основной среды или других виртуальных окружений. Для простоты можно считать, что venv создаёт внутри проекта каталог, в который добавляет нужную версию Python и устанавливает все используемые пакеты для приложения. В результате получается рабочее, изолированное и переносимое окружение. Звучит удобно, давайте скорее его ставить!
Шаг 0. Проверяем наличие Python3
Чтобы проверить, установлен ли Python3 на Вашей системе, выполните следующую команду:
Если нужная версия питона установлена, то вывод команды будет примерно таким:
Если Python3 отсутствует в системе, то установите его, выполнив следующую команду:
Шаг 1. Устанавливаем менеджер пакетов pip (если ещё не установлен)
Чтобы иметь возможность устанавливать пакеты в Python, необходимо установить пакетный менеджер pip. Делается это с помощью следующей команды:
Шаг 2. Устанавливаем пакет виртуального окружения virtualenv
С помощью только что установленного менеджера пакетов ставим пакет virtualenv:
Шаг 3. Создаём каталог для хранения виртуальных файлов
Удобнее всего хранить все виртуальные окружения в одном месте. В нашем случае мы будем хранить их в папке
/.virtualenvs , которую предварительно создадим с помощью команды:
Строго говоря, на этом этапе уже можно использовать virtualenv со стандартными командами. Однако удобнее использовать дополнительные команды из virtualenvwrapper, чтобы не настраивать всё самостоятельно.
Шаг 4. Устанавливаем virtualenvwrapper
virtualenvwrapper — такой же пакет, как и virtualenv, а потому для его установки будем использовать pip:
Шаг 5. Настройка переменных окружения и
Создайте переменную окружения WORKON_HOME с путём к созданной папке с виртуальными окружениями:
Допишите следующий текст в файл
Чтобы отредактировать файл
/.bashrc, можно использовать простой текстовый редактор nano:
В результате файл будет выглядеть следующим образом:
Чтобы изменения вступили в силу, выполните команду source :
Если всё сделано правильно, скрипты virtualenvwrapper’а настроят файлы и каталоги, а в терминале будет следующее:
Всё готово, можно создавать виртуальное окружение!
Шаг 6. Создаём виртуальное окружение
Чтобы создать виртуальное окружение, достаточно всего лишь выполнить команду mkvirtualenv и задать имя этого окружения, например, так:
Результатом команды будет созданное виртуальное окружение и в самом начале строки терминала в скобках появится имя только что созданного окружения:
Чтобы вернуться в обычное окружение (выйти из виртуального окружения), используется команда deactivate :
А чтобы активировать виртуальное окружение, используется команда workon [имя_окружения] :
Создание виртуального окружения с другой версией Python3
Может возникнуть ситуация, при которой одному проекту будет нужна версия Python 3.6, а другому 3.5, а какому-то и вовсе 3.8. Неужели придётся настраивать виртуальные окружения с нуля для каждой версии по-отдельности?
К счастью, нет. При создании нового виртуального окружения, достаточно указать версию Python (важно: эта версия должна быть установлена в системе) после флага —python :
Если указанная версия Python установлена в системе, то вывод терминала должен будет быть похож на этот, а результат команды python —version должен выдать указанную при создании версию языка.
Теперь можно не переживать за конфликты версий пакетов между разными проектами и наслаждаться использованием виртуального окружения.
Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов
Языки программирования: Python, C, C++, Pascal, C#, Javascript
Выпускник МГУ им. М.В. Ломоносова
Programforyou — это сообщество, в котором Вы можете подтянуть свои знания по программированию, узнать, как эффективно решать те или иные задачи, а также воспользоваться нашими онлайн сервисами.
Источник
Виртуальное окружение в Python
В этой статье мы рассмотрим как используется и для чего нужно виртуальное окружение в Python.
Введение
Виртуальное окружение это изолированная пространство для приложений в Python, которое дает возможность иметь свой набор зависимостей не мешая другим проектам.
Так же оно позволяет задействовать различные версии интерпретатора в нескольких проектах.
Создание окружения в Python выполняется с помощью встроенного модуля venv. Venv — это модуль из стандартной библиотеки не требующий никакой дополнительной установки.
Виртуальное окружение создается под конкретные проекты, для его создания потребуется знать путь до корневого каталога.
Создание директории для проекта
Необходимо выполнить команду в терминале
mkdir test_project создает папку с именем test_project, а cd test_project перемещается в эту директорию.
Это то же самое, что создать пустую папку и открыть ее.
В директории test_project будут храниться все файлы проекта и это будет местом для виртуального окружения.
Создание виртуального окружения
Чтобы создать виртуальную среду, нужно вызвать модуль venv из интерпретатора и указать директорию для служебных файлов.
После выполнения будет готово окружение с версией Python по умолчанию.
.venv — имя окружения. Можно называть как угодно. По совместительству является директорией в которой хранится вся информация окружения.
Если в операционной системе есть несколько версий Python и требование использовать какую – то конкретно, создайте виртуальную среду следующим образом
Этот запуск команды создаст каталог .venv если он не существует, а также создаст внутри него папки, содержащие копию интерпретатора Python, а так же стандартную библиотеку и различные поддерживающие файлы.
Активация виртуальной среды
Просто создать виртуальное окружение недостаточно, так же его необходимо активировать
Активация виртуальной среды в Windows
Открываем командную оболочку или powershell, переходим в директорию проекта и выполняем команду
Активация виртуальной среды в macOS и Linux
Достаточно открыть терминал в директории проекта и выполнить команду
Активация виртуальной среды изменит приглашение оболочки, чтобы показать, какую виртуальную среду вы сейчас используете.
Вот и все. Затем вы можете установить, обновить и удалить пакеты с помощью pip. Установленные пакеты будут изолированы только для данного проекта.
Заключение
Сегодня мы рассмотрели как используется и для чего необходимо виртуальное окружение в Python. Если у вас есть дополнительные вопросы, не стесняйтесь задавать их в комментариях.
Источник