Рубрики
Без рубрики

Настройка среды разработки Python с Pipenv

Что такое пиперв? Фото кредит: сделать mem.org Согласно официальной документации «PIP … Tagged Python, Pipenv, Frontend, Backend.

Что такое пиперв?

Фото кредит: Сделать mem.org.

Согласно официальной документации, « Pipenv – это инструмент, который стремится принести лучшие из всех упаковочных миров (Bundler, Composer, NPM, груз, пряжу и т. Д.) в мир Python.” «Он использует Pipfile, Pip и Virtualenv в одну единственную команду».

Что это значит?

Фото кредит: Сделать mem.org.

Во-первых, нам нужно понять, что такое менеджер пакета. Пакетный менеджер – это инструмент, который помогает в процессе управления (установки, удаления, удаления и обновления) пакетов или модулей программного обеспечения. Если вы работали с Node.js ранее, вы бы работали с NPM (Manager Unode Package), который используется для управления модулями JavaScript, с которыми вы работаете на узле. Что делает Pipenv, помогает с управлением пакетами Python, используемой для строительства проектов, таким же образом, что NPM делает.

Pipenv работает, создавая виртуальную среду для выделения различных программных пакетов, которые вы устанавливаете для ваших проектов. Перед Пипнвом они были другими менеджерами пакетов Python для создания виртуальных сред, как Virtualenv, но они имеют свои проблемы.

Почему виртуальные среды?

Привет! Меня зовут Пип. Я стандартный менеджер пакета для Python. Я могу помочь вам установить и удалить пакеты Python. Однако я устанавливаю их в глобальный объем окружающей среды вашей системы.

Почему это проблема?

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

Простое решение для этого состоит в том, чтобы создать форму изоляции для каждого из этих проектов, чтобы они не мешали друг другу, поэтому избегая гражданской войны Джанго. Вот где приходят виртуальные среды. Это обычная практика среди команд разработки программного обеспечения, работающих в одном проекте, чтобы поделиться файлом, содержащим описание всех пакетов, необходимых для запуска приложения. PIP использует файл требования .txt. Однако некоторые проблемы возникают с этим.

Файл требований .txt не принимает к сведению конкретные версии установленных пакетов. Это может вызвать проблемы в будущем, потому что работа «PIP Install» получит самые последние версии пакетов, которые могут привести к разрыву приложения. Хотя эта проблема может быть решена путем закрепления (вручную указывать) версий, это не будет работать для зависимостей пакетов, поскольку они записаны в файле требований.

Позвольте мне сделать это более понятнее – предположить, что у вас есть две пакеты, которые вы установлены с PIP (P1 v.0.0.01 и P2 v.0.02). Эти пакеты у каждого есть собственные зависимости. Только вышеупомянутые пакеты будут записаны в файле требований. Таким образом, даже если они не обновлены до самых последних версий, их зависимости не закреплены и могут быть обновлены, вызывая нарушение приложения.

Почему Пипнв

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

  • Во-вторых, Pipenv управляет записями установленных пакетов и их зависимостей с использованием файлов PipFile и Pipfile.lock. PIPFile отслеживает все установленные пакеты, которые файл PIPFile.lock отслеживает их зависимости. Забавная часть об этом все в том, что вы можете легко генерировать файл требований. Atxt для людей, которые еще не используют Pipenv.

  • В прошлом у нас были другие пакеты для создания виртуальных сред, которые помогли решить эту проблему, один из них является пакетом VirtualenV, но это немного утомительно настроить и использовать. Pipenv облегчает вам управление своими пакетами. Он сочетает в себе PIP и Virtualenv для создания виртуальных сред для вашего проекта.

Источник изображения: https://docs.pipenv.org/en/latest/

Достаточно разговоров, давайте доберемся до работы. Фото кредит: imgflip.

Настройка Pipenv.

Ради демонстрации того, как работает Пипенв, мы будем создавать базовый проект Django. Но для этого произойдет, нам нужно установить Python и PiP.

Установите Python3.

Мы будем устанавливать Python3, которая является последней версией Python. Самый простой подход – это посетить: https://www.python.org/downloads/ Загрузите пакет, который подходит для вашей операционной системы и установить его. Для этой статьи я буду работать над средой Mac OSX. Таким образом, альтернативно вы можете установить Python через терминал, в следующих шагах:

После завершения процесса установки вы можете ввести который варят Чтобы увидеть местоположение установленного домелки. Домашний номер – это менеджер пакетов для Mac Ваш выход должен выглядеть похоже на это

  • Установите Python 3. Чтобы установить Python3, запустить Brew Установить Python3

На моем компьютере он показывает, что я уже установил Python3, он также показывает версию Python3, которую я установил.

Чтобы убедиться, что у вас установлен Python3, на терминале введите: который python3.

Когда вы устанавливаете Python3 с помощью домелки, он автоматически устанавливает PIP3 Вы можете убедиться, что PIP3 установлен бегом который PIP3 или PIP3 --version.

Установите Pipenv

Установить Pipenv, запустите PIP3 Установите Pipenv

Если вы посмотрите на мой выход на скриншоте, вы увидите некоторые места, где он утверждает, что «Требование уже удовлетворено» – то есть потому, что у меня уже был установлен VirtualenV, и помните, что я сказал вам, что Pipenv работает как VirtualenV, так и PIP.

В какой среде мы в настоящее время?

Когда я запускаю «PIP3 Freeze», вы увидите, что он отображает все пакеты, которые у меня есть в моей нынешней среде, которая является глобальной средой. Вы скоро увидите разницу, когда мы запускаем ту же команду в нашей виртуальной среде, когда мы не установили никаких пакетов.

Запустите виртуальную среду

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

Глядя на скриншот выше, вы поймете, что бежали следующие команды:

  • MKDIR Project_1 – создать новый каталог проекта
  • CD Project_1 – Чтобы изменить свой текущий рабочий каталог на новый каталог, который я только что создал
  • Pipenv Shell – Чтобы создать новую виртуальную среду, и вы заметите, что среда была успешно создана.

Проверить, какая среда мы находимся в

Чтобы убедиться, что мы изменили среды, запустите PIP3 заморозить снова : В отличие от предыдущего выхода, вы заметите, что результат нет. Это потому, что мы больше не в глобальном масштабе, а в этой новой среде мы не установили никаких приложений. Кроме того, если вы проверяете каталог проекта, вы заметите, что был создан новый PIPFile.

PIPFile написан на языке конфигурации Call Toml (очевидный минимальный язык Тома). Это предназначено для написания файлов конфигурации. Мы не будем беспокоить себя первыми четырьмя линиями.

  • Линия 6 указывает, где будут перечислены пакеты, которые будут использоваться только для целей развития. Эти пакеты не будут установлены в производственных условиях, только в средах тестирования и развития.
  • Линия 8 Указывает на раздел, в котором будут перечислены пакеты на основе производства
  • Линия 11 указывает на версию Python, используемой или обязательной.
  • Обратите внимание, что вы можете вручную добавить пакеты в этот файл и запустить Pipenv Установить на вашем терминале, чтобы установить их.

Теперь давайте установим новый пакет и посмотрим, что происходит. Мы будем устанавливать django

Вы заметите, что я не указывал версию Django для установки. Вы также заметите, что он искал файл PIPFile.lock и создал один, когда он не сможет найти.

В нашем редакторе кода вы также обнаружите, что Django был добавлен в список пакетов. И версия указывается звездочкой. Что это значит, что он всегда будет устанавливать последнюю версию всякий раз, когда кто-то работает PipenV. Мы также можем изменить звездочку на версию, которую мы хотим. Вы также заметите, что был сгенерирован файл PipleFile.lock. Это отслеживает все установленные пакеты и их зависимости.

Еще одна вещь, которую мы можем сделать, это запустить команду замораживания PIP3 снова. Вы заметите, что здесь перечислены только пакеты, перечисленные в файле PIPFile.lock.

Проверьте текущую среду

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

  • Python – Это должно начать оболочку Python, как видно на изображении ниже.
  • Импорт SYS – Импортируйте модуль SYS
  • Sys.Exculable – Это должно распечатать путь к текущей среде Python, в которой вы работаете
  • Тип Выход () – Чтобы бросить курить тип оболочки Python Выход – бросить окружающую среду.
  • Повторите первые 3 команды, вы заметите, что вывод отличается. Это потому, что на сегодняшний день Mac поставляется с предустановленным Python 2.7. Поскольку вы больше не создавали в виртуальной среде, вы получите другой выход. Вы также можете запустить Fip3 Freeze

Тестирование нашей установки Django

  • Убедитесь, что вы находитесь в каталоге, который вы создали свою среду
  • Тип Pipenv Shell – активировать окружающую среду
  • Беги Django-Admin StartProject Bookstore. – Период (.) В конце концов указывает на то, что он должен установить его в текущем каталоге и позвонить в книжный магазин проекта. Вы не можете видеть какой-либо выходной сигнал после выполнения команды.
  • Тип Ls На терминале, и вы увидите, что был создан новый каталог, называемый книжный магазин. Вы также заметите другой файл под названием Manage.py.

Запустите приложение Django

Для запуска приложения Django на терминале введите следующую команду:

  • Python Manage.py Runserver
  • Скопируйте URL-адрес, предоставляемый в терминале, как выделено, вставил его на адресной строке браузера и нажмите Enter, чтобы запустить его.

Теперь у вас есть приложение Django

Файл требований

Как уже упоминалось, файл требований. TXT был использован для сохранения записей установленных пакетов при использовании PIP. Если вам нужно работать с кем-то, кто использует PIP вместо Pipenv, вы можете поделиться файлом требований .txt с ними:

Создать файл требований .txt

  • Запустите Pipenv Lock -R Команда для отображения списка установленных пакетов.
  • Скопируйте вывод команды выше выполненной выше и вставьте его в файл требований. Atxt и нажмите его на репозиторий проекта. Другой разработчик, просто должен бежать PIP Установить И все пакеты и их зависимости будут установлены.

Создайте свой собственный PIPFile.lock

Если у вас есть файл требований .txt, вы можете генерировать свой PIPFile.lock

  • Поместите файл требований. Atxt в каталоге проекта
  • Беги Пипенв замок
  • Беги Pipenv Установить --ignore-pipfile – Это установит все пакеты и их зависимости, используя PIPFile.lock и проигнорируют PipFile.

Перечисленные пакеты, установленные в текущей среде

  • Пипенв Блокировка -R.

  • Pipenv Удалить пакет для удаления пакета

  • Установка пакетов для среды развития

  • Проверьте уязвимости безопасности Чтобы проверить наличие уязвимостей в ваших пакетах, вы можете запустить Pipenv Check

  • Просмотр графика зависимости пакета Вы можете увидеть все пакеты вашего проекта и их зависимости, работающие: График Pipenv

  • Переменные среды Вы также можете добавить переменные среды к вашим проектам

    • Создать файл .env
    • Добавить переменные среды к нему
    • Пароль = ‘mysecretpassword’
    • Пипнв бежит Python Вы увидите переменные среды загрузки импорта OS OS.environ [«пароль»]
  • Удалить виртуальную среду Вы также можете удалить среду. Обратите внимание, что это не удаляет ресурсы или файлы, созданные в вашем проекте. Это просто деактивирует окружающую среду.

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

Оригинал: “https://dev.to/davidshare/setting-up-a-python-development-environment-with-pipenv-3lfj”