pipenv install, установка зависимостей в окружение


pipenv install позволяет выполнить установку модуля в pip окружение для отдельного проекта на python, без установки глобально в систему.

Рассмотрим сначала pipenv, потом перейдем к установке зависимостей проекта.



pipenv является более высокоуровневым аналогом Virtualenv и также позволяет создать окружение для работы с проектом, написанным на python. Окружение позволит использовать Pipfile, в который будет писаться информация о всех зависимостях устанавливаемых пакетов.



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

Virtailenv удобен, но у него есть минусы — основных два. Первый — необходимость активации окружения, командой

source bin/activate



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



Второй в том, что в requirements.txt жестко фиксируются версии всех пакетов. Это удобно при переносе, но если один из пакетов обновляется файл с требованиями также необходимо обновлять.



Pipenv этих минусов не имеет, относительно второго вопроса, в частности, отслеживание зависимостей происходит автоматически, т.е. в Pipfile вместо версий помещается *, и используются самые свежие версии пакетов в случае если они могут быть использованы и никакие зависимости при этом не нарушаются.



Установка Pip и Python, настройка pipenv


Для демонстрации взят сервер с Ubuntu. Устанавливаем питон из репозитория

apt-get install python

apt-get install python-pip



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

python --version

pip --version



Pip используется для установки пакетов глобально для системы


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


Установим его

pip install --user pipenv


В системную переменную PATH добавляем ~/.local/bin


Пример приведен на скриншоте:

pipenv install


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

mkdir project && cd project



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


Устанавливаем библиотеку requests, также будет создан Pipfile в который будет записываться информация о зависимостях пакетов.

pipenv install requests


mcedit main.py

import requests

response = requests.get('https://httpbin.org/ip')

print('Your IP is {0}'.format(response.json()['origin']))



pipenv run python main.py

Ответом должна быть строка Your IP is IP адрес



Использование окружения pip, как уже говорилось, хорошо тем, что версии пакетов контролируются автоматически, но можно заморозить список используемого ПО с указанием версий выполнив

pipenv lock



При этом будет создан файл Pipfile.lock



Из других преимуществ возможность использования одного окружения одновременно для разработки и в production. Во втором случае достаточно при установке пакета добавить ключевое слово --dev.



Пакет установится и будет использоваться только в разработке, по-умолчанию в окружении он присутствовать не будет.



Активируется окружение переходим в шел

pipenv shell



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

pipenv run command python



Читайте про запуск приложения на фреймворке Flask, при настройке его работы можно использовать pipenv.

Сказать спасибо