1. Quale è la soluzione oggi più usata?

  • pip + pip-tools resta ancora lo stack dominante per progetti legacy e per chi ha bisogno di un file requirements.txt (≈ 50 k pacchetti PyPI usano setuptools + pip-tools come backend di build) .
  • Poetry è invece il gestore completo che cresce più velocemente: > 41 k pacchetti lo usano già come build-backend e ogni nuovo progetto open-source tende a scegliere pyproject.toml + Poetry per avere lock-file, ambiente e build in un unico tool .

In sintesi:

  • “classico” → pip-tools
  • “moderno” → Poetry

2. Quale offre la migrazione più agevole da pip-tools?

Poetry vince per versatilità e percorso di transizione chiaro:

CaratteristicaPoetrypip-tools
Importa requirements.txtpoetry add $(cat requirements.txt)già nativo
Lock-file automaticopoetry.lock (sempre)solo dopo pip-compile
Ambienteautogestitodevi crearlo tu
Aggiornamento dipendenzepoetry updateriesegui pip-compile
Build / publish wheelpoetry build + poetry publishsetuptools + twine
Separazione dev/prod--group devfile separati a mano
CLI amichevolecomandi uniciconcatenazione pip + venv

Inoltre Poetry:

  • legge già pyproject.toml (standard PEP 621) → unico file di configurazione;
  • permette di convivere col vecchio workflow: potete tenere il vecchio requirements.txt generato da pip-tools finché la migrazione non è completa (variante 4 del mio precedente messaggio);
  • ha documentazione ufficiale e tool per importare progetti pip-based in pochi minuti .

3. Conclusione rapida

  • Volete solo generare oggi il lock e non cambiare null’altro? → pip-tools (opzione B) è la più usata e basta.
  • Volete governance + build + ambiente in unico tool e poter migrare gradualmente? → Poetry è la più versatile e il percorso preferito dalla community per i nuovi progetti .

Referenze:
: confronto diretto pip/PDM/Poetry/UV
: esperienza pratica di migrazione pip → Poetry
: case-study aziendali su Poetry
: statistiche PyPEP 517 (setuptools vs Poetry)
: Poetry vs pip – BetterStack 2025