Poetry. Управление зависимостями для проектов на Python

20 Апр 2022 , 1286

Когда мы создаем новый проект на Python , то мы вначале создаем виртуальное окружение. И когда нам нужны внешние проекты , такие как Django, request и другие библиотеки , то устанавливаем их с помощью pip. В итоге мы формируем файл c зависимостями requirements.txt

Но в последних проектах я для управления зависимостями начал использовать Poetry . Признаться, я довольно долго остерегался данного продукта и не понимал для чего нужен еще один инструмент для управления зависимостями. Использовать pip было привычно

Но углубившись поглубже , я понял почему предпочтительно использовать Poetry и какие преимущества он предоставляет

В этой статье я хотел бы показать вам как использовать Poetry , как управлять зависимостями , какие преимущества он предоставляет

Установка Poetry

Рекомендуемый способ установки Poetry - использование официального скрипта install-poetry.

Для Linux и MacOS

curl https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python3 -

Для Windows

Перейдите по этой ссылке

Чтобы проверить установлен ли у вас Poetry и какой версии , вы должны запустить команду:


poetry --version

Эта команда отобразит вам текущую версию Poetry

Давайте создадим новый проект используя Poetry. Запустим следующую команду:


poetry new blogproject

Мы создали проект blogproject. Создается вот такая структура:


Как мы видим выше , у нас создался пакет blogproject внутри проекта blogproject. Также у нас создалась папка с тестами tests, где внутри в файле test_blogproject.py создался первый тест , который проверяет содержит ли переменная __version__ ожидаемую версию. Также есть файл README и самый важный файл pyproject.toml. Давайте разберем этот файл

Файл pyproject.toml


[tool.poetry]
name = "blogproject"
version = "0.1.0"
description = ""
authors = ["Фамилия Имя Автора  "]

[tool.poetry.dependencies]
python = "^3.9"

[tool.poetry.dev-dependencies]
pytest = "^5.2"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

comments powered by Disqus

Подписка

Подпишитесь на наш список рассылки, чтобы получать обновления из блога

Рубрики

Теги