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:
| Caratteristica | Poetry | pip-tools |
|---|---|---|
Importa requirements.txt | poetry add $(cat requirements.txt) | già nativo |
| Lock-file automatico | poetry.lock (sempre) | solo dopo pip-compile |
| Ambiente | autogestito | devi crearlo tu |
| Aggiornamento dipendenze | poetry update | riesegui pip-compile |
| Build / publish wheel | poetry build + poetry publish | setuptools + twine |
| Separazione dev/prod | --group dev | file separati a mano |
| CLI amichevole | comandi unici | concatenazione 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.txtgenerato 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