Poetry 1.0: dependency management Python moderno

Poetry 1.0 (dicembre 2019) di Sébastien Eustace: gestione dipendenze e packaging Python con pyproject.toml, lock file deterministico, resolver moderno. Alternativa a pip + setup.py + virtualenv tradizionale.

Open SourceR&D PoetryPythonPackage Managementpyproject.tomlOpen Source

Package management Python: un caos storico

Prima di Poetry la pila di tool Python era frammentata: setup.py (imperative), requirements.txt (no transitive resolution), virtualenv separato, pipenv con problemi di performance. Nessuno standard moderno equivalente a Cargo (Rust), npm (JS), bundler (Ruby).

Poetry, creato da Sébastien Eustace nel 2018, unifica tutto. La versione 1.0 è rilasciata il 12 dicembre 2019. Licenza MIT.

Cosa fornisce

  • pyproject.toml come unico file di progetto (PEP 518/621)
  • Lock file (poetry.lock) deterministico, versionato
  • Resolver moderno con SAT solver
  • virtual env gestito automaticamente
  • Build & publish su PyPI con poetry build && poetry publish
  • Dependency groups (dev, test, docs) separati
[tool.poetry]
name = "myapp"
version = "0.1.0"

[tool.poetry.dependencies]
python = "^3.10"
django = "^4.2"
requests = "^2.31"

[tool.poetry.group.dev.dependencies]
pytest = "^7.4"

Adozione

Poetry diventa scelta popolare per nuovi progetti Python, specialmente libraries e applicazioni web. Condivide lo spazio con pipenv (declining), uv (successor emergente nel 2024), hatch (PyPA).


Riferimenti: Poetry 1.0 (12 dicembre 2019). Sébastien Eustace. Licenza MIT. pyproject.toml (PEP 518, 621). SAT solver resolver.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi