Источник: Nuances of Programming
В этой статье я хочу поделиться инструментами для создания виртуального окружения в Python, а также разобрать их преимущества и недостатки.
Различные инструменты для создания виртуального окружения в Python
1. virtualenv
Преимущества:
Легкость модернизации с помощью pip и работа с различными версиями Python. Также поддерживает Python 2.7+.
Недостатки:
Двоичный файл интерпретатора Python копируется в новое место расположения, в котором он будет доступен для чтения. Помимо этого, необходима отдельная установка для Python.
Примечание: virtualenv можно использовать с virtualenvwrapper.
2. Python Environment Wrapper (pew)
pew выступает в качестве упаковщика и используется для любой команды. Подробную информацию можно посмотреть в документации.
Преимущества:
Упрощает работу с виртуальными окружениями. С помощью этой команды можно создать новое окружение, установить список пакетов и активировать окружение.
Недостатки:
Главная проблема заключается в ограничении поддержки. Последнее изменение в коде было внесено в марте 2018, почти год назад.
3. venv
venv также используется для установки и получения доступа к виртуальным окружениям. Приобрел популярность, начиная с Python 3.5. Здесь можно ознакомиться с документацией.
Преимущества:
Генерирует файл конфигурации, который распознается двоичным файлом Python, и не требует копирования бинарного файла в новое место. Более того, активно поддерживается со стороны разработчиков Python.
Недостатки:
Не подходит для версий Python до 3.3.
4. pipenv
Благодаря этому инструменту работа с Python и Виртуальными Окружениями выходит на новый уровень, поскольку он сочетает в себе поддержку управления пакетами и окружением. Документацию можно посмотреть здесь.
Преимущества:
Легко указать окружение, с которым вы работаете. Помимо этого, с его помощью можно создать отдельные секции для окружения, такие как production и test-development.
Недостатки:
Требует отдельной загрузки с помощью pip.
Все эти инструменты помогут в решении проблемы. С их помощью легко создать Виртуальное Окружение. Просто выберите любой и научитесь с ним работать.
В качестве лучшего инструмента для создания виртуальных окружений я выбрал pipenv. Рассмотрим его базовые особенности.
pipenv
Для установки pipenv с помощью brew используйте следующую команду.
brew install pipenv
Создание Окружения
После установки pipenv начинается работа с окружением. Его можно создать в любой папке. Я выбрал pipenvProject. Просто установите любой пакет внутри папки. Используем requests. Он автоматически установит окружение и создаст Pipfile и Pipfile.lock.
cd pipenvProject
pipenv install requests
В директории будут созданы два файла. Pipfile, включающий список пакетов, версию Python и прочую информацию. Файл блокировки (lock file) генерируется в качестве Pipfile.lock.
Для активации окружения используется pipenv shell. Теперь мы находимся в Виртуальном Окружении. Чтобы заглянуть внутрь Python и проверить наличие пакетов с помощью import requests, используется команда python. Если ошибок нет, это значит, что пакет успешно установлен.
Выйти из окружения можно с помощью exit. После закрытия окружения невозможно получить доступ к пакету requests.
Запустить команды можно прямо внутри окружения без вызова shell. Для этого используется команда run. Таким образом, для запуска Python можно использовать следующую команду:
pipenv run python
Совместимость с пользователями non-pipenv
Каждый раз при установке пакетов в Python мы указываем список в файле под названием requirements.txt. Затем просто запускаем приведенную ниже команду и устанавливаем все пакеты сразу.
pip install -r requirements.txt
При работе с pipenv существует метод для создания текста к этому файлу. Просто используйте команду:
pipenv lock -r
Отобразится текст для файла requirements.txt, который могут использовать другие.
Удаление Окружения
Окружение можно легко удалить с помощью команды pipenv —-rm и создать снова, используя pipenv shell.
Однако файлы в каталоге останутся на месте. Чтобы избавиться от них, нужно удалить каталог.
cd ..
rm -r pipenvProject
Заключение
Мы рассмотрели современные инструменты для создания виртуального окружения с Python, включая pew, venv и pipenv, а также их преимущества и недостатки.
Бонус:
Если у вас появятся трудности при создании Виртуального Окружения и возникнет ошибка, то это можно легко исправить. Создайте файл .bash_profile с командой touch в главном каталоге. Затем откройте в редакторе (я использую vim).
touch ~/.bash_profile
vim .bash_profile
Добавьте две следующие строки, сохраните и перезапустите терминал. Проблема решена.
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
Читайте нас в телеграмме и vk
Перевод статьи Karan Bhanot: Comparing Python Virtual Environment tools