DJango
venv
Стоит ли использовать виртуальное окружение в своей работе — однозначно да. Это мощный и удобный инструмент изоляции проектов друг от друга и от системы.
Для создания виртуального окружения, перейдите в директорию своего проекта и выполните:
python -m venv venv Флаг -m указывает Python-у запустить venv как исполняемый модуль. venv/ — название виртуального окружения (где будут храниться ваши библиотеки).
В результате будет создан каталог venv/ содержащий копию интерпретатора Python, стандартную библиотеку и другие вспомогательные файлы.
python -m venv venv
Активация
Чтобы начать пользоваться виртуальным окружением, необходимо его активировать:
venv\Scripts\activate.bat - для Windows;
source venv/bin/activate - для Linux и MacOS.
source выполняет bash-скрипт без запуска дополнительного bash-процесса.
Проверить успешность активации можно по приглашению оболочки. Она будет выглядеть так:
(venv) root@purplegate:/var/test#
Альтернативы venv
На данный момент существует несколько альтернатив для venv:
- pipenv - это pipfile, pip и virtualenv в одном флаконе;
- pyenv - простой контроль версий Питона;
- poetry - новый менеджер для управления зависимостями;
- autoenv - среды на основе каталогов;
- pew - инструмент для управления несколькими виртуальными средами, написанными на чистом Python;
- rez - интегрированная система конфигурирования, сборки и развертывания пакетов для программного обеспечения.
pipenv является официально рекомендуемым
Pipenv — современный менеджер зависимостей для Python-проектов
Можно забыть про pip и virtualenv
Вам больше не нужно использовать pip и virtualenv по отдельности. В pipenv этот функционал реализован "из коробки".
Requirements.txt больше не нужен Для своей работы менеджер использует 2 файла: Pipfile (по сути замена requirements.txt) и Pipfile.lock (связывает версии пакетов, тем самым обеспечивая дополнительную безопасность).
Когда вы запускаете проект с Pipenv, он автоматически создает виртуальную среду для текущего проекта, даже если вы еще не используете ее. Pipenv управляет зависимостями, отказавшись от привычного requirements.txt, и заменяя его на новый документ под названием Pipfile. Когда вы устанавливаете библиотеку с помощью Pipenv, файл Pipfile для проекта автоматически обновляется с указанием сведений об этой установке, включая информацию о версии, расположение хранилища Git, путь к файлу и другую информацию.
Автоматизация рутинных задач
Больше не придется тратить время на выполнение рутинных задач, выискивая причины отсутствия синхронизации и возникновения ошибок в версиях. Всю рутинную работу pipenv берет на себя:
- автоматически генерирует Pipfile;
- автоматически удаляет/добавляет записи в Pipfile при установке/удалении пакетов;
- автоматически создает virtualenv;
- автоматически подгружает данные из .env файлов и т.д.
Установка
pip install pipenv
Пример использования
Рассмотрим простой пример использования pipenv.
Создаем виртуальную среду
Для инициализации виртуальной среды Python 3, выполните команду:
pipenv shell
Если виртуальной среды еще не существует, она будет создана.
Также вы можете принудительно создать среду Python 3 или Python 2. Для этого нужно выполнить команды pipenv --three или pipenv --two.
Устанавливаем пакеты
Далее можно установить сторонний пакет. Существует 3 варианта установки:
Вариант #1. Указываем пакет, который нужно установить
pipenv install scrapy
Установится последняя версия пакета. При этом в Pipfile добавится запись scrapy = "*"
Вариант #2. Не указываем пакет (установка пакетов из Pipfile)
pipenv install
Установятся все пакеты из Pipfile и обновится Pipfile.lock
Вариант #3. Не указываем пакет (установка пакетов из Pipfile.lock)
pipenv sync
Установятся все пакеты из Pipfile.lock
Запускаем скрипты
Запустить python-скрипты можно несколькими способами:
Способ #1. Активируем виртуальное окружение командой pipenv shell, далее выполняем python script-name.py
Способ #2. Запустить скрипт сразу внутри оболочки virtualenv можно командой:
pipenv run python script-name.py