>>> На главную <<<

Poetry

Poetry is a tool for dependency management and packaging in python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. Замена [requirements]

Выставляется изолированно от остальной системы для осуществления версионирования зависимостей. В линуксе:

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -

После установки можно проверить что записалось в PATH [команды-ubuntu]. Если ничего, то прописать путь к poetry source $HOME/.poetry/env. Проверит версию poetry --version

Ссылка

[команды-ubuntu]

Basic usage

Project setup

poetry new poetry-demo создает новый poetry project с названием poetry-demo. В нем:

poetry-demo
├── pyproject.toml
├── README.rst
├── poetry_demo
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_poetry_demo.py

Здесб pyproject.toml задает архитоектуру проекта и зависимости

[tool.poetry]
name = "poetry-demo"
version = "0.1.0"
description = ""
authors = ["Sébastien Eustace <sebastien@eustace.io>"]

[tool.poetry.dependencies]
python = "*"

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

Preinitialize project (шаблон проекта)

Размещаем файл .toml в нужной папке и делаем инит

cd pre-existing-project
poetry init

Specifying dependencies

Специфические зависимости прописываются в томле

[tool.poetry.dependencies]
pendulum = "^1.4"

В секции tool.poetry.repositories можно прописать репозитории, в которых poetry будет искать зависимости. Дефолтный - [pypy]

Вместо ручной модификации, можно использовать poetry add pendulum - зависимость будет найдена, добавлена в томл со всеми сабзависимости и в правильной ограничивающей версии.

Using your virtual environment

Окуржение poetry ставится в {cache-dir}/virtualenvs.

Можно использовать poetry run

Примеры:

poetry run python your_script.py poetry run pytest

Другой вариант - создать poetry shell. Создание нового шела обязательно. Выйти можно через exit или deactivate не выходя из шела.

Третий вариант - запустить вручную: source {path_to_venv}/bin/activate. Путь можно получить так: poetry env info --path, соответственно одной командой: source`poetry env info –path`/bin/activate`

Подробнее тут

Installing dependencies

poetry install в проекте

Если запускается впервые, то создается poetry.lock и все ставится с нуля. Дальше poetry будет сверяться с lock и ставить только отсутствующие или измененные зависимости. Необходимо постоянно комитить лок систему контроля версий, чтобы обновлять версии для установки.

Если нужно установить только зависимости,то тогда poetry install --no-root

Публикация библиотек с poetry

Команды

Основное - это install. Инсталит из .toml с учетом .lock

Апдейт зависимостей в .lock через poetry update. Можно заапдейтить только часть poetry update requests toml

Добавление необходимых зависимостей в .toml через poetry add requests pendulum - зависимости добавляются, затем инсталлируются.

Опции

Удалчерез poetry remove pendulum. Посмотреть зависимости poetry show

Остальное смотри в доке.

Configuration

Repositories

Managing environments

Poetry работает всегда изолированно от глобального питона. При создании окружения poetry использует текущую активированную версию #python. Есть возможность переключаться между различными версиями python - подробнее

Решение проблемы с путями к питону в vs-code

Окружения можно снести через delete

Спецификация зависимостей и их версий в .toml

Состав .toml

Пример реализации проекта на poetry Как использовать poetry на [[[heroku]], [heroku-cli]

>>> На главную <<<