Corso Python / Eseguire e controllare il codice in VS Code

Per eseguire Python in VS Code devi preparare l’editor e selezionare separatamente l’interprete. Apri la cartella del progetto e scegli il suo ambiente virtuale, poi verifica che terminale, esecuzione e installazione dei pacchetti usino lo stesso Python. Un editor installato correttamente non risolve da solo un interprete selezionato in modo errato.

Preparare editor, estensione e cartella

Questa lezione presume che Python sia già installato e che nella cartella del progetto esista .venv. Per la preparazione puoi seguire la procedura Windows oppure quella per macOS e Ubuntu. VS Code è l’editor; l’estensione Python aggiunge strumenti per il linguaggio, mentre l’interprete esegue il codice.

Apri la vista Extensions e cerca l’estensione Python pubblicata da Microsoft. Verifica il publisher oltre al nome. Per il debug è necessario anche il supporto Python Debugger indicato dalla documentazione; controlla che sia presente e abilitato se non riesci ad avviare una sessione.

Usa File → Open Folder per aprire python-lab, invece di aprire soltanto un file isolato. Nelle interfacce localizzate le etichette possono essere tradotte. La cartella aperta fornisce un contesto comune al progetto, al terminale e ai percorsi relativi. Evita di lavorare su una copia del file in una cartella mentre esegui quella di un’altra.

Il tutorial Python ufficiale di VS Code descrive le tre componenti e il flusso di esecuzione. Le schermate possono cambiare con le versioni, quindi individua i comandi per nome e conferma sempre il percorso effettivo.

Selezionare e verificare l’interprete

  1. Apri la Command Palette, con Ctrl+Shift+P su Windows/Linux o Cmd+Shift+P su macOS.
  2. Esegui Python: Select Interpreter e scegli l’eseguibile della cartella .venv del progetto. Se non compare, individua il percorso corretto oppure aggiorna il rilevamento degli ambienti secondo gli strumenti disponibili.
  3. Apri un nuovo terminale integrato e verifica l’eseguibile Python e il percorso di pip:
python -c "import sys; print(sys.executable)"
python -m pip --version

Su Windows il percorso atteso è quello di .venv\Scripts\python.exe; su macOS e Ubuntu è .venv/bin/python. Il percorso stampato da pip deve ricadere nello stesso ambiente. Se python nel terminale continua a indicare un runtime differente, non limitarti a leggere la versione mostrata nella barra di stato.

Un terminale già aperto può conservare l’ambiente precedente. Dopo una modifica dell’interprete, aprine uno nuovo e ripeti la verifica. Se l’attivazione non è disponibile, puoi usare il percorso esplicito dell’eseguibile per i comandi di controllo. Non è necessario cambiare policy di esecuzione o installare globalmente i pacchetti per correggere una selezione sbagliata.

La guida agli ambienti Python in VS Code spiega come l’ambiente selezionato viene usato da esecuzione, debug e funzioni del linguaggio. Una configurazione di debug esplicita può scegliere un altro interprete: controllala se il terminale e il debugger si comportano diversamente.

Salvare ed eseguire un programma completo

Crea expense.py nella cartella del progetto, fuori da .venv, e salva il contenuto seguente come UTF-8:

amounts = [3500, 8000, 2500]
total = sum(amounts)
print(f"total={total}")

Usa il comando dell’estensione Run Python File in Terminal oppure esegui python expense.py nel terminale dell’ambiente scelto. Il risultato previsto è:

total=14000

La prima riga crea una lista di tre importi, la seconda ne calcola la somma e la terza la mostra. Salva il file prima della prova e assicurati che sia quello attivo nell’editor. Se il comando del terminale è python3 fuori dall’ambiente virtuale, scegli l’interprete coerente con il progetto invece di alternare comandi senza controllarne il percorso.

Prima di confrontare una sessione di debug con l’esecuzione normale, ripeti nel nuovo terminale i due controlli di identità:

python -c "import sys; print(sys.executable)"
python -m pip --version

Entrambi devono puntare alla .venv del progetto. Questi controlli non richiedono pacchetti di analisi o librerie esterne e permettono di separare un problema del codice da un problema dell’ambiente. Un pulsante di esecuzione fornito da un’altra estensione può avere impostazioni diverse; all’inizio usa i comandi Python individuati esplicitamente.

Usare un breakpoint e diagnosticare le differenze

  1. Imposta un breakpoint sulla terza riga, quella che contiene print, facendo clic nel margine accanto al numero di riga. In quel punto la somma è già stata calcolata, ma print non è ancora stata eseguita.
  2. Avvia il debug con F5 o il comando Start Debugging. Se richiesto, scegli la configurazione per il file Python corrente.
  3. Quando il debugger si ferma, osserva nella vista Variables la lista amounts e total uguale a 14000. La riga evidenziata indica l’istruzione da eseguire, non una riga già completata.
  4. Usa Step Over, normalmente F10, per eseguire print e confronta l’uscita con total=14000. Concludi la sessione prima di ripetere una prova.

Per un confronto controllato, cambia soltanto 8000 in 9000, salva ed esegui nuovamente: total deve diventare 15000 sia nell’uscita sia al breakpoint dopo il calcolo. Ripristina 8000 alla fine. Se fermi l’esecuzione sulla riga che assegna total prima di eseguirla, la variabile potrebbe non essere ancora definita: sposta il breakpoint o avanza di una riga.

Se un import fallisce dopo l’installazione di un pacchetto, confronta percorso dell’interprete e percorso di pip. Se un file non si apre, controlla la cartella di lavoro e il nome completo. Se le modifiche non appaiono nell’uscita, controlla salvataggio e file eseguito. Evita nomi come json.py o csv.py, che possono nascondere moduli della libreria standard.

Quando un breakpoint non viene raggiunto, verifica che la riga sia eseguibile, che il file sia quello avviato e che il debug usi la configurazione prevista. Non correggere un totale giusto solo perché stai osservando una riga precedente all’assegnazione. La documentazione del debugger Python descrive controlli e configurazioni per approfondire il problema.