Creazione con build
Creare wheel e sdist
Creazione con build è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.
Che cosa significa fare una build
Il codice sorgente deve essere trasformato in artefatti di distribuzione che pip possa installare. Lo strumento moderno per farlo è build, eseguito come python -m build.
Produce due tipi di file: una distribuzione del sorgente e una wheel.
sdist e wheel
Due tipi di artefatti:
- sdist (.tar.gz), un archivio del sorgente; pip lo compila durante l'installazione
- wheel (.whl), un archivio già compilato; pip deve solo decomprimerlo
Le wheel si installano più velocemente e sono preferite. La sdist è il fallback e il sorgente canonico.
Installare lo strumento build
Lo installi una volta con pip install build. È un frontend leggero: legge il Suo pyproject.toml, configura un ambiente isolato e invoca il build backend per creare gli artefatti.
Non chiama direttamente il backend; build orchestra il processo.
Eseguire la build
Dalla radice del progetto esegua python -m build. Per impostazione predefinita, crea sia una sdist sia una wheel e le colloca in una nuova directory dist/.
Utilizzi --wheel o --sdist per crearne soltanto una.
args = []
targets = []
if '--sdist' in args:
targets.append('sdist')
if '--wheel' in args:
targets.append('wheel')
if not targets:
targets = ['sdist', 'wheel']
print('Will build:', targets)Nomi delle wheel
I nomi delle wheel codificano i metadati: mytool-0.1.0-py3-none-any.whl significa nome mytool, versione 0.1.0, Python 3, nessun requisito ABI e qualsiasi piattaforma. I pacchetti costituiti solo da Python ricevono il suffisso py3-none-any.
name = 'mytool'
version = '0.1.0'
wheel = name + '-' + version + '-py3-none-any.whl'
print(wheel)
print('Parts:', wheel[:-4].split('-'))Isolamento della build
Per impostazione predefinita, build crea un nuovo ambiente virtuale, installa i requires indicati in [build-system] e crea il pacchetto al suo interno. Questo garantisce che la build non dipenda accidentalmente da pacchetti presenti soltanto nel Suo ambiente.
Esaminare la cartella dist
Dopo una build, dist/ contiene i Suoi artefatti. Elencarne il contenuto conferma cosa è stato prodotto prima del caricamento. Si tratta della normale visualizzazione del contenuto di una directory.
dist = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in dist:
kind = 'sdist' if f.endswith('.tar.gz') else 'wheel'
print(kind.ljust(6), f)Controllare una wheel
Una wheel è semplicemente un archivio ZIP. Può decomprimerla per verificare che contenga i moduli e i file di dati e che non manchi nulla di importante. Se un file manca qui, mancherà anche dopo l'installazione.
Build pulite
I file obsoleti nelle directory build/ o dist/ possono produrre risultati fuorvianti. Elimini queste directory prima di una build di rilascio, così pubblicherà esattamente ciò che produce il sorgente corrente.
stale_dirs = ['build', 'dist', 'mytool.egg-info']
for d in stale_dirs:
print('Remove before clean build:', d)Build riproducibili
Lo stesso sorgente dovrebbe produrre sempre gli stessi artefatti. Blocchi le versioni del build backend in [build-system] requires ed eviti di recuperare valori dall'ambiente in esecuzione. La riproducibilità significa che un collega o un server CI ottiene un output identico.
Insieme alle build pulite, elimina le sorprese del tipo «funziona sulla mia macchina».
Creare la build in CI
La maggior parte dei progetti viene creata su un server di integrazione continua anziché su un laptop. Un job CI recupera il codice, esegue python -m build e conserva gli artefatti. Questo garantisce che i rilasci provengano ogni volta da uno stato noto e pulito.
In CI viene eseguito esattamente lo stesso comando che usa localmente.
Verifica rapida
Verifichi le Sue conoscenze sulle build.
Riepilogo
Ha imparato a creare gli artefatti:
pip install build, quindipython -m build- Producono una sdist (.tar.gz) e una wheel (.whl) in
dist/ - Le build vengono eseguite in un ambiente isolato utilizzando i
requiresdi[build-system] - Esaminare la wheel ed eseguire build pulite prima del rilascio
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 76
- Lezioni
- 320
Domande Frequenti
La lezione «Creazione con build» è gratuita?
Sì — il testo completo di «Creazione con build» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.
Cosa imparerò in «Creazione con build»?
Creare wheel e sdist Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Python Academy?
Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Creazione con build»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Python Academy?
Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Struttura del progetto e pyproject.toml
- Creazione con build
- Versionamento e metadati
- Pubblicare con twine