lezione 10

packaging e distribuzione

venv, pyproject e build per progetti professionali.

livello: intermedio durata: 40 min output: package pubblicabile badge: package publisher

ambienti virtuali

usa venv per isolare dipendenze e versioni.

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

pyproject.toml

definisci metadata e dipendenze con pyproject.

[project]
name = "buzatu-tools"
version = "0.1.0"
dependencies = ["requests"]

build e publish

usa build per generare wheel e sdist, e twine per publish.

python -m build
twine upload dist/*

versioning

usa semantic versioning e changelog per release stabili.

automatizza il rilascio con tag git e release notes.

esercizi

prepara un package con un comando cli e pubblicalo su testpypi.

aggiungi una licenza e un README di qualità.

checklist

  • usa venv per ogni progetto
  • pyproject completo
  • build e test prima del publish
  • aggiorna changelog

panoramica

In questo capitolo su packaging e distribuzione, venv, pyproject e build per progetti professionali. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: package publisher

obiettivi

  • capire e applicare venv in uno scenario reale
  • capire e applicare pyproject in uno scenario reale
  • capire e applicare build in uno scenario reale
  • capire e applicare versioning in uno scenario reale

scheda rapida

def main():
    dati = [1, 2, 3]
    risultati = [x * 2 for x in dati]
    print(risultati)

if __name__ == "__main__":
    main()

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

tips

  • usa un venv per ogni progetto
  • separa logica e I/O
  • mantieni funzioni piccole e nominative
  • usa pyproject.toml
  • versiona semanticamente
  • includi README e licenza

tip: Se la build non è riproducibile, la distribuzione non è affidabile.

mini progetto

Prepara un pacchetto riutilizzabile per utilità comuni.

  • definisci struttura pacchetto
  • scrivi pyproject.toml
  • builda la wheel
  • installa in venv di prova

output atteso: uno script o query ripetibile con risultati verificabili.

start a brief