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&DPoetryPythonPackage 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.7"
django = "^2.2"
requests = "^2.22"

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

Adozione

Poetry si sta imponendo come scelta per nuovi progetti Python, specialmente librerie e applicazioni web. Condivide lo spazio con pipenv, alternativa a pip + virtualenv su cui Poetry tenta un approccio più solido.


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