Middle
What is Poetry and what advantages does it offer in managing dependencies in Python projects?
sobes.tech AI
Answer from AI
Poetry is a tool for managing dependencies and building packages in Python projects.
Advantages of Poetry:
- Deterministic dependency management: Poetry uses the
poetry.lockfile, which records the exact versions of all installed dependencies, ensuring reproducibility of the working environment. - Dependency isolation: Each project has its own virtual environment, isolating dependencies from other projects and the system.
- Simplified dependency management: Commands for adding, removing, and updating dependencies are intuitive and straightforward.
- Built-in virtual environment manager: Poetry automatically creates and manages virtual environments, eliminating the need to use
venvorvirtualenvseparately. - Package publication management: Poetry simplifies the process of building and publishing packages to PyPI.
pyproject.tomlfile: All project settings (dependencies, metadata, etc.) are stored in a singlepyproject.tomlfile, which complies with the PEP 518 standard.
Example of adding a dependency:
poetry add requests
Example of removing a dependency:
poetry remove requests
Example of installing dependencies from a lock file:
poetry install
Example of pyproject.toml structure:
[tool.poetry]
name = "my-package"
version = "0.1.0"
description = ""
authors = ["My Name <me@example.com>"]
readme = "README.md"
packages = [{include = "my_package"}]
[tool.poetry.dependencies]
python = "^3.9"
requests = "^2.28.1"
[tool.poetry.group.dev.dependencies]
pytest = "^7.1.2"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"