Эффективное управление зависимостями пакетов Python

Poetry — это инструмент для управления зависимостями пакетов Python. Он позволяет указать зависимости вашего проекта Python в простом, удобочитаемом файле под названием «pyproject.toml», который затем используется для установки необходимых пакетов. Poetry похож на такие инструменты, как pip и conda, но предлагает ряд дополнительных функций, которые делают его более мощным и простым в использовании.

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

Еще одним преимуществом Poetry является поддержка ограничений версии. С помощью pip вы можете указать версию пакета, используя операторы сравнения, такие как «==» и «›=», но это может быть громоздко и чревато ошибками. Poetry использует тот же синтаксис, что и pip, но также поддерживает использование диапазонов версий, которые позволяют указать диапазон совместимых версий для пакета. Это может быть особенно полезно при работе с пакетами, которые имеют обратно несовместимые изменения между разными версиями.

Вот пример файла «pyproject.toml», который использует Poetry для указания зависимостей проекта Python:

[tool.poetry]
name = "my-project"
version = "0.1.0"

[tool.poetry.dependencies]
requests = "^2.24"
numpy = "^1.19"
pandas = "^1.1"
[tool.poetry.dev-dependencies]
pytest = "^6.1"

В этом файле указано, что для проекта требуются пакеты «requests», «numpy» и «pandas» с совместимыми версиями, указанными с использованием диапазонов версий. В нем также указано, что проект зависит от разработки пакета «pytest».

Чтобы установить эти зависимости с помощью Poetry, выполните следующую команду:

poetry install

Это установит необходимые пакеты в виртуальную среду для вашего проекта и создаст файл «pyproject.lock», в котором перечислены точные версии установленных пакетов. Файл блокировки обеспечивает использование одних и тех же версий пакетов при каждой установке проекта, что помогает предотвратить неожиданные изменения в поведении пакетов из-за обновлений.

Вы также можете использовать Poetry для управления версиями пакетов в вашем проекте. Например, чтобы обновить пакет «numpy» до последней совместимой версии, вы можете использовать следующую команду:

poetry update numpy

Poetry автоматически разрешит зависимости обновленного пакета и установит необходимые версии. Если в вашем проекте есть какие-либо конфликты с существующими пакетами, Poetry сообщит вам об этом и предоставит возможность разрешить конфликты.

В дополнение к этим функциям Poetry также предоставляет ряд других полезных инструментов для управления проектами Python. Например, у него есть встроенная команда для создания новых проектов, которая создает для вас базовую структуру каталогов и файл «pyproject.toml». Он также имеет команду для публикации вашего проекта в индексе пакетов Python (PyPI), что позволяет легко делиться вашим проектом с другими.

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

Если вы новичок в поэзии, вот несколько советов, которые помогут вам начать:

  • Обязательно создайте файл «pyproject.toml» для своего проекта и укажите все зависимости и dev-зависимости, которые нужны вашему проекту. Это упростит управление зависимостями вашего проекта и обеспечит их правильную установку.
  • Используйте диапазоны версий, чтобы указать совместимые версии ваших зависимостей. Это позволит вам обновлять свои зависимости, не нарушая ваш проект, и упростит совместное использование вашего проекта с другими.
  • Запускайте команду «poetry install» при первом создании проекта и всякий раз, когда вы добавляете или обновляете зависимости. Это гарантирует, что правильные версии ваших зависимостей будут установлены и заблокированы в файле «pyproject.lock».
  • Используйте команду «обновить поэзию», чтобы обновить отдельные зависимости до последних совместимых версий. Это может помочь поддерживать ваш проект в актуальном состоянии и исправлять любые ошибки или проблемы безопасности, которые могли быть обнаружены в ваших зависимостях.
  • Используйте команду «poetry run» для выполнения сценариев или команд в виртуальной среде вашего проекта. Это особенно полезно, когда вам нужно запускать скрипты, зависящие от конкретных версий ваших зависимостей.

Больше контента на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Следите за нами в Twitter, LinkedIn, YouTube и Discord.

Повысьте узнаваемость и принятие вашего технологического стартапа с помощью Circuit.