Как установить poetry mac os

Обновлено: 04.07.2024

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

Все началось с того, что создателю Poetry Себастьену Юстасу потребовался единый инструмент для управления проектами от начала до конца, надежный и интуитивно понятный, который бы мог использоваться и в рамках сообщества. Одного лишь менеджера зависимостей было недостаточно, чтобы управлять запуском тестов, процессом развертывания и всем созависимым окружением. Этот функционал находится за гранью возможностей обычных пакетных менеджеров, таких как Pip или Conda. Так появился Python Poetry.

Что умеет Poetry

Ключевой фичей Poetry Python является полное управление библиотеками, заявленными для вашего проекта, включая их установку, обновление и публикацию.

  • Создавать и упаковывать проекты с помощью одной команды.
  • Публиковать проекты в PyPI и приватных репозиториях.
  • Проверять состояния зависимостей одной командой.
  • Фиксировать версии зависимостей.
  • Управлять публикацией билдов.
  • Использовать ваши настроенные виртуальные сервера или создавать собственное виртуальное окружение для полной изоляции от вашей системы.

Функционал командной строки расширяется с помощью плагинов, а предустановленные значения при необходимости легко заменяются на свои варианты. В целом, продукт имеет юзер-френдли интерфейс.

Установка

Poetry — кроссплатформенный инструмент. Теоретически он должен одинаково работать в Linux, MacOS и Windows. Системные требования предполагают использование актуальных версий Python, поэтому начиная с версии Poetry 1.2 не поддерживаются Python 2.7 и 3.5, будьте внимательны!

Poetry создает изолированное виртуальное окружение для вашего проекта, инсталлируя все необходимое и разруливая конфликты зависимостей (если они в принципе решаемы).

По умолчанию установка происходит в домашний каталог пользователя, но это можно изменить путем переопределения переменной окружения POETRY_HOME:

Установка на OSX и Linux

Этапы установки на Mac и Linux идентичны:

1 Проверить версию Python (в консоли python --version , и если версия Python по умолчанию 2.7, проверить python3 --version ).

2 Чтобы установить актуальную версию вводим в консоль:

Если дефолтная версия языка не устраивает или если для установки хочется воспользоваться версией питона 3.x, а по умолчанию стоит 2.7, используйте команду:

Обратите внимание: процесс установки может занять довольно длительное время.

Каталог bin, в который происходит установка инструмента, в Unix расположен в $HOME/.poetry/bin .

Установка на Windows

Для инсталляции Poetry:

1 Откройте Powershell ( Win + X далее i , или найдите PoweShell через поиск).

2 Введите команду:

Перезапустите оболочку и все заработает. Папку установки для Windows вы найдете в %USERPROFILE%\.poetry\bin .

Для корректной работы установщик должен иметь возможность найти исполняемые файлы py.exe -3 или py.exe -2.

Установка через PIP и PIPX

Для данного варианта установки необходимо иметь на борту менеджер пакетов PIP (или PIPX).

Для установки Poetry через PIP выполните команду:

pip install --user poetry

Имейте ввиду, что зависимости пакета Poetry могут вызвать конфликт с уже установленными пакетами в вашей системе.

Команды Pipx для установки, обновления и удаления инструмента:

pipx install poetry pipx upgrade poetry pipx uninstall poetry

Работа с Poetry

Для начала убедимся, что Poetry корректно установлен, введя в терминал команду:

Если в ответ высветится актуальный номер версии, можно приступать к работе.

Перед работой с Poetry проверьте корректность установки командой "poetry --version"

Создание проекта

Создаем пробный проект и присваиваем ему название "project-poetry":

poetry new project-poetry

Произойдет автоматическое создание папки проекта со следующей структурой:

project-poetry project-poetry __init__.py tests __init__.py test_project_poetry.py pyproject.toml README.rst

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

Pyproject.toml

В файле pyproject.toml содержится описание вашего Poetry-проекта — название, описание, используемый репозиторий, зависимости проекта и т.д. С помощью него легко организовать зависимости вашего проекта ( pyproject.toml можно назвать преемником устаревшего requirements.txt ).

Если вы знакомы с Pipenv , то наверняка заметите, что pyproject.toml очень похож на Pipfile .

После инициализации проекта, содержание файла будет следующим:

Разберемся, что означает каждая секция:

  • [tool.poetry] — содержит метаданные проекта, которые не относятся к пакетам зависимостей — название, описание, указание авторства и контактную информацию;
  • [tool.poetry.dependencies] — раздел содержит зависимости, необходимые для проекта;
  • [tool.poetry.dev-dependencies] — зависимости разработки (не войдут в сборку проекта, но необходимые для других аспектов — тестирования, документации и т. д.);
  • [build-system] — если вы используете Poetry для управления своим проектом, вы должны ссылаться на него в этом разделе (команды new и init автоматически добавляют информацию в раздел build-system ).
📌 О дополнительных секциях файла можете прочитать в официальной документации " The pyproject.toml file ".

Все переменные могут задаваться вручную в соответствующие места Pyproject.toml , а также с помощью команды add или добавляться автоматически средствами Poetry.

Установка пакета

Теперь установим новый пакет в наш проект:

poetry add pymongo

Результат выполнения команды установки пакета "poetry add"

После установки пакета, в pyproject.toml появится новая запись:

[tool.poetry.dependencies] python = "^3.8" pymongo = "^3.11.2"

💭 Для добавления dev-зависимости (зависимости для разработки) необходимо добавить флаг --dev: poetry add pytest --dev .

Удаление пакета

Для удаления пакета достаточно выполнить команду:

poetry remove pymongo

Для удаления пакета выполните poetry remove "имя_пакета"

При этом запись пакета также удалится из pyproject.toml .

Poetry и виртуальное окружение

По умолчанию, Poetry автоматически создает виртуальное окружение для вашего проекта в cache-директории:

  • для Windows — C:\Users\<username>\AppData\Local\pypoetry\Cache\virtualenvs ;
  • для Linux —

В эту директорию будут сохраняться все зависимости для проекта.

Подробнее о том, что такое виртуальное окружение и как оно работает:

Виртуальное окружение (venv)

Конфигурация Poetry

Конфигурация Poetry настраивается с помощью команды poetry config . После первого запуска команды, Poetry создаст файл конфигурации config.toml , в котором будут храниться все заданные параметры. Находится файл в директории:

  • для Windows — C:\Users\<username>\AppData\Roaming\pypoetry ;
  • для Linux —

Для примера, попробуем настроить Poetry так, чтобы он создавал виртуальное окружение virtualenvs не в cache-директории, а в корневом каталоге проекта. Для этого установим переменной virtualenvs.in-project значение true :

poetry config virtualenvs.in-project true

Чтобы убедиться, что значение успешно установилась, выполним команду:

poetry config virtualenvs.in-project

💭 Чтобы посмотреть все текущие параметры Poetry, используйте команду poetry config --list .

Теперь все зависимости будут устанавливаться в папку .venv в корне вашего проекта.

Если параметр нужно удалить, используйте флаг --unset :

poetry config virtualenvs.in-project --unset

Список команд

Poetry охватывает множество функций, связанных с управлением конфигурацией и публикацией пакетов:

  • shell — при первом запуске этой команды в каталоге вашего проекта Poetry создает виртуальную среду Python, которая будет связана с проектом. Вместо создания папки, содержащей библиотеки зависимостей, Poetry создает среду на глобальном системном пути. Как только эта виртуальная среда будет создана, ее можно активировать в любое время, запустив poetry shell в каталоге проекта.
  • install — устанавливает зависимости, указанные в pyproject.toml . При первой установке создается файл .lock , который содержит фактические номера версий каждого установленного пакета. Номера версий в .lock приоритетнее, чем находящиеся в pyproject.toml .
  • update — если для пакетов в pyproject.toml существуют более новые версии, они будут установлены, и .lock файл будет обновлен.
  • add — добавление зависимости к pyproject.toml . Пакет устанавливается сразу после применения команды.
  • remove — удаление библиотеки зависимостей.
  • config — пути к текущей виртуальной среде или ее переменные. Передача опции --list вернет текущие значения конфигурации.
  • check — проверяет pyproject.toml на наличие ошибок.
  • show — возвращает вывод всех пакетов, установленных в проекте, включая зависимости зависимостей.
  • run — выполняет сценарий, заданный в разделе tool.poetry.scripts в pyproject.toml .
  • build — собирает исходники и пакеты в архив.
  • publish — публикует вывод предыдущей сборки во внешнем репозитории, например, в PyPi.

Чтобы получить справку из командной строки с полным списком команд, просто вызовите poetry .

Команда "poetry" выведет весь список доступных команд

Сборка и настройка пакета

Чтобы собрать пакет, запускаем команду build .

poetry build Building project-poetry (0.1.0) - Building sdist - Built project-poetry-0.1.0.tar.gz - Building wheel - Built project_poetry-0.1.0-py3-none-any.whl

В результате в папке dist будут сформированы пакеты.

Если мы хотим ограничить сборку определенным типом, можно просто использовать параметр -F .

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

Сохранить учетные данные для этого репозитория также можно с помощью команды config:

💭 В приведенной команде user и password соответствуют имени пользователя и паролю для входа в наш частный репозиторий. Обратите внимание, если не указать пароль, то его будет предложено ввести при развертывании пакета.

Закончив настройку, мы можем просто развернуть пакет следующей командой:

Если использован частный репозиторий, следует указать его имя Priv с помощью опции -r .

Poetry и Docker

Использование Poetry для работы с проектом внутри Docker-контейнера иногда сопряжено со сложностями интеграции. Ключевым моментом является отключение VirtualEnv , так как он не нужен в уже изолированном докере:

poetry config virtualenvs.create false

Затем устанавливаются разные наборы зависимостей для переменной среды:

poetry install $(test "$MY_ENV" == production && echo "--no-dev")

Таким образом в $MY_ENV будет контролироваться, какой набор зависимостей следует устанавливать: все (по умолчанию) или продакшн только с --no-dev флагом.

Poetry выходит далеко за рамки стандартного менеджера зависимостей, предлагая такие функции, как создание файлов .lock , создание шаблонов проекта и множество параметров конфигурации, каждый из которых обрабатывается через простой интерфейс командной строки. Если вы не знаете, как чисто и эффективно структурировать свои проекты Python и облегчить управление ими, сделайте себе одолжение и используйте Poetry.

Мы в Hexlet считаем, что именно poetry лучше всего подходит на роль "главного инструмента" Python-разработчика. Поэтому все проекты в рамках профессии предполагают использование poetry.

Вам стоит взять poetry на вооружение как можно раньше и приучить себя оформлять каждый эксперимент как poetry-проект, даже если этот проект может показаться маленьким. Так вы быстрее привыкнете использовать профессиональные инструменты и делать это правильным способом — выработаете хорошие привычки!

Установка poetry

Poetry, хоть и написан на Python, не является обычной Python-программой, каковые принято устанавливать с помощью pip install . Во вводном разделе документации к Poetry вы найдёте команды для установки программы в вашу операционную систему.

Если установка прошла успешно, poetry должен стать доступен как отдельная команда в shell:

Как правило, указанные в документации команды, что называется, "просто работают". Но если у вас что-то не получится, напишите в наш Slack — наверняка, кто-то да сталкивался с теми же проблемами и успешно с ними справился!

Предварительная настройка

Если вы запросите перечень настроек poetry сразу после установки, то увидите что-то подобное:

poetry берёт на себя работу с виртуальными окружениями и выполняет он эту работу хорошо. Однако poetry изначально настроен на то, что у вас будет целый "зоопарк" версий Python, поэтому создаёт виртуальные окружения для проектов в не совсем привычном месте — обратите внимание на настройку virtualenvs.path .

В принципе можно использовать и настройки по умолчанию, однако среди разработчиков на Python принято хранить виртуальное окружение для каждого проекта в директории проекта в поддиректории .venv (помните, как вы создавали окружения командой python3 -m venv .venv ?). Стоит и poetry попросить поступать так же:

Теперь каждый poetry-проект будет иметь виртуальное окружение при себе! Это позволит, к примеру, переносить проект с одной машины на другую простым копированием директории.

Первый проект

Настало время создать тот самый "poetry-проект" с помощью команды poetry new ИМЯ .

Прежде, чем продолжить, убедитесь, что в системе, где вы запускете poetry, доступна команда python .

Предположим, что вы ввели команду poetry new first , вот как будет выглядеть результат:

Кроме пакета first , в проекте уже есть пакет tests с первым тестом. Нам пока этот пакет не интересен, но само его наличие должно вас настроить на нужный лад — настоящие проекты всегда имеют тесты!

В файле README.rst вы будете держать описание проекта.

Расширение .rst говорит о том, что это файл формата reStructuredText. Пройдите по ссылке и почитайте о формате — знать о нём полезно, ведь именно в данном формате и документируют код проектов Python!

И, наконец, самый важный файл в poetry-проекте — pyproject.toml . Это файл конфигурации проекта, описывающий всё, что нужно poetry знать, чтобы

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

Отдельно стоит отметить последний пункт: poetry приучает к тому, чтобы вы всегда думали о проекте так, как будто вы будете его публиковать — любой "уважающий себя" пакет имеет хорошее описание и правильную структуру, ему всегда назначена какая-то версия. Стоит думать о таких вещах, даже если вы не собираетесь публиковать каждый ваш проект в индекс!

Расширение .toml говорит о том, что это файл формата TOML. Почитайте и об этом формате.

Первый взгляд на pyproject.toml

У только что созданного проекта файл конфигурации выглядит примерно так:

Здесь строчки вида [tool.poetry] описывают секции, в секциях же находятся пары "ключ = значение". Важно помнить, что большинство ключей нельзя помещать "не в те" секции. Вы всегда можете посмотреть в документации, какие ключи бывают и каким секциям они принадлежат.

В данный момент нам интересны первые три секции:

  • tool.poetry описывает проект целиком с точки зрения poetry и хранит версию ( version ), описание ( description ), имя, под которым пакет будет публиковаться ( name )
  • tool.poetry.dependencies хранит список зависимостей, требуемых для работы самого кода, их ещё называют "runtime-зависимости". Здесь всегда будет указан сам Python — без него уж точно код не запустить!
  • tool.poetry.dev-dependencies хранит список зависимостей, нужных в процессе разработки проекта, так называемые "dev-зависимости". В примере выше указан pytest — это такой инструмент для автоматизации запуска тестов.

Секция build-system описывает тот факт, что перед нами именно проект, управляемый poetry. Но существуют и другие инструменты для управления проектами, для них секция build-system будет выглядеть иначе.

Инициализация виртуального окружения

Как правило, poetry сам может понять, что окружение пора создать или обновить. Но можно и явно вызвать команду poetry install :

В процессе будут установлены все зависимости — и "runtime" и "dev". Для рассматриваемого проекта это означает, что будет установлен пакет pytest (вместе с его зависимостями), а это значит, что теперь pytest можно запустить:

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.


Экосистема Python породила целую пачку способов управления зависимостями в проектах.
Прямо сейчас можно выбирать между setup.py, requirements.txt, setup.cfg, MANIFEST.in и Pipfile.
Но французского питониста Sébastien Eustace все эти способы не устроили, и он написал свою штуку для менеджмента питонячих пакетов — Poetry. Зачем он это сделал? Чтобы заменить все эти setup.py, requirements.txt, setup.cfg, MANIFEST.in и Pipfile чем-то простым и понятным. Плюс добавить кое-что полезное сверху.

Poetry позволяет рулить сразу кучей вещей — версией языка в вашем проекте, зависимостями, подключаемыми путями, скриптами тестирования/разработки, сборкой и публикацией билдов.Все необходимые пути, зависимости и скрипты описываются в специальном файле pyproject.toml.

Poetry лучше всего работает в паре с pyenv — системой управления множественными версиями Python и виртуальными окружениями.

Щупаем

Засучим рукава и посмотрим, как poetry работает в деле. Первым делом ставим pyenv, следуя официальной инструкции в доках.

Среда установлена и настроена, зависимости управляются одним пальцем, можно пилить код!

У вас, скорее всего, появятся в проекте команды запуска сервера, воркеров, скриптов деплоя и тестирования. Их можно засунуть в pyproject.toml и тоже рулить ими одним пальцем.

Добавляем в файл

и теперь можно запускать скрипт командой

Зачем это все?

Потратив десяток минут на освоение этой штуки, вы сэкономите время и нервы на управлении версиями языка и пакетов, отслеживании зависимостей и настройке путей. Особенно это поможет тем, кто хоть раз пробовал опубликовать свои наработки в pip :)

  • Резолвер зависимостей, способный всегда найти решение конфликтам версий пакетов (если оно вообще существует)
  • Автоматическое создание изолированных сред для запускапроектов.
  • Приятная консольная утилита, которая здорово упрощает запуск, тесты и деплой проектов.

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

Если вы – начинающий программист с новым Mac, который хочет заняться программированием, то вам нужно установить Git на macOS. Git – это распределённая система управления версиями, которая используется программистами и разработчиками. Вы сможете использовать систему Git для совместной работы с другими специалистами, для поиска ошибок и др.

git.0

Ниже расскажем, как установить Git на Mac и начать программировать. Для этого у вас должны быть навыки работы в Терминал.

Что такое Git?

Git – это распределённая система управления версиями с открытым исходным кодом, которой пользуются разработчики и программисты по всему миру. Система позволяет совместно работать с другими специалистами над общими проектами и отслеживать разработку. С её помощью также можно находить ошибки.

Как установить Git на Mac

Если на вашем Mac установлена программа Xcode, то она автоматом установила и Git. Однако чаще всего устанавливается не последнее версия, так что лучше установить самую новую версию вручную. После установки Git вы можете подтвердить её статус в Терминал с помощью команды «git –version».

1) Установщик Git для macOS

Это самый простой способ установить Git на Mac. Есть установщик Git специально для macOS.

2) Установка Git через Homebrew

homebrew-install-git

Многие разработчики предпочитают использовать Homebrew. Таким способом можно установить Git на M1 Mac. Однако некоторые файлы и утилиты ещё не были оптимизированы под процессор Apple Silicon.

Установите Homebrew с помощью этой инструкции или инструкции для M1 Mac. Делается это с помощью команды в Terminal.

  • Запустите Терминал.
  • Введите команду«-brew install git» и нажмите
  • После завершения установки проверьте статус Git.

3) Установка Git через GitHub

github-desktop-mac-727×500

После установки проверьте статус с помощью команды: git –version.

Это всё! Теперь вы знаете о самых простых способах установить систему Git на Mac. Мы советуем использовать установщик.

Читайте также: