Importante

La traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 100.00%.

25.3. Console python di GIS

Come vedrai più avanti in questo capitolo, QGIS è stato progettato con un’architettura a plugin. I plugin possono essere scritti in Python, una lingua molto famosa nel mondo geospaziale.

QGIS ha un’API Python (vedi PyQGIS Developer Cookbook per alcuni esempi di codice) per permettere all’utente di interagire con i suoi oggetti (layer, elementi o interfacce). QGIS ha anche una console Python.

QGIS Python Console è una shell interattiva per l’esecuzione di comandi Python. Dispone anche di un editor di file Python che consente di modificare e salvare gli script Python. Sia la console che l’editor sono basati sul pacchetto PyQScintilla2. Per aprire la console vai su Plugins ► Python Console (Ctrl+Alt+P) o fai clic sull’icona pythonFile Python Console nella Barra degli Strumenti Plugins.

25.3.1. La Console Interattiva

La console è un interprete Python che consente di eseguire comandi Python. I moduli di QGIS (analysis, core, gui, server, processing, 3d) e Qt (QtCore, QtGui, QtNetwork, QtWidgets, QtXml) e i moduli math, os, re e sys di Python sono già importati e possono essere utilizzati direttamente.

La console interattiva è composta da una barra degli strumenti, un’area di input e una di output.

../../../_images/python_console.png

Fig. 25.17 La Console Python

25.3.1.1. Barra degli Strumenti

La barra degli strumenti comprende i seguenti strumenti:

  • clearConsole Pulisci Console per cancellare l’area di output;

  • start Esegui Comando disponibile nell’area di immissione: lo stesso che premere Enter;

  • showEditorConsole Mostra Editor: attiva la modalità L” Editor di Codice;

  • options Opzioni…: apre una finestra di dialogo per configurare console properties;

  • helpContents Aiuto… fornisce un menu per accedere a diverse documentazioni:

  • dock Aggancia Editor Codice per agganciare o sganciare il pannello nell’interfaccia QGIS

25.3.1.2. Area di immissione

Le caratteristiche principali dell’area di immissione della Console sono:

  • Completamento del codice, evidenziazione della sintassi e suggerimenti per le seguenti API:

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

    • osgeo-geos

  • Ctrl+Alt+Space per visualizzare l’elenco di completamento automatico se abilitato nel Impostazioni Python;

  • Eseguire frammenti di codice dall’area di input digitando e premendo Enter o Esegui Comando;

  • Eseguire frammenti di codice dall’area di output usando Enter Selected dal menu contestuale o premendo Ctrl+E;

  • Scorrere la cronologia dei comandi dall’area di input usando i tasti freccia Up e Down ed eseguire il comando che vuoi;

  • Ctrl+Shift+Space per visualizzare la cronologia dei comandi: facendo doppio clic su una riga il comando verrà eseguito. La finestra di dialogo Storico Comandi può anche essere richiamata dal menu contestuale dell’area di input;

  • Salva e cancella la cronologia dei comandi. La cronologia sarà salvata nel file console_history.txt nella cartella attiva user profile;

  • Digita i seguenti comandi speciali:

    • ? per visualizzare una guida della Console Python.

    • _api per aprire la documentazione QGIS C++ API o _api(object) per la documentazione di un oggetto specifico (nella documentazione di QGIS C++ API o Qt API)

    • _pyqgis per aprire la documentazione di QGIS Python API oppure _pyqgis(object) per la documentazione di un oggetto specifico (nella documentazione di QGIS Python API o Qt API)

    • _cookbook per aprire PyQGIS Cookbook.

    • ! seguito da un comando per eseguire comandi di shell dalla console Python. La console avvierà un sottoprocesso e inoltrerà il suo output all’Output della console Python. Mentre il sottoprocesso è in esecuzione, l’Input della console Python passa alla modalità STDIN e inoltra i caratteri inseriti al processo figlio. In questo modo è possibile inviare una conferma quando il programma figlio la richiede. Quando la console è in modalità STDIN, premendo Ctrl+C si arresta il sottoprocesso. È anche possibile trasferire il risultato di un comando a una variabile con la sintassi var = !cmd

      >>> !echo QGIS Rocks!
      QGIS Rocks
      
      >>> !gdalinfo --version
      GDAL 3.10.3, released 2025/04/01
      
      >>> !pip install black
      # Install black python formatter using pip (if available)
      
      >>> sql_formats = !ogrinfo --formats | grep SQL
      >>> sql_formats
      ['SQLite -vector- (rw+v): SQLite / Spatialite', '  MSSQLSpatial -vector- (rw+): Microsoft SQL Server Spatial Database', '  PostgreSQL -vector- (rw+): PostgreSQL/PostGIS', '  MySQL -vector- (rw+): MySQL', '  PGDUMP -vector- (w+v): PostgreSQL SQL dump']
      

Suggerimento

Riutilizzare comandi effettuati dal pannello di output

Puoi eseguire frammenti di codice dal pannello di output selezionando del testo e premendo Ctrl+E. Non importa se il testo selezionato contiene il prompt dell’interprete (>>>, ...).

25.3.2. L” Editor di Codice

Utilizza il pulsante showEditorConsole Mostra Editor nella Console interattiva per attivare il widget dell’editor. Esso consente di modificare e salvare script Python e offre funzionalità avanzate per la gestione del codice. A seconda delle enabled settings, fornisce varie funzionalità che facilitano la scrittura del codice, quali il completamento automatico, l’evidenziazione della sintassi e i suggerimenti di chiamata per le API supportate. Sono inoltre disponibili l’indentazione automatica, l’inserimento di parentesi, l’inserimento di commenti nel codice e il controllo della sintassi.

../../../_images/python_console_editor.png

Fig. 25.18 L’editor Console Python

L’area dell’editor di codice consente di lavorare contemporaneamente su diversi script, ciascuno in una scheda specifica. Premi symbologyAdd Nuovo editor per aggiungere una nuova scheda. È possibile eseguire uno script, in tutto o in parte, dall” Code Editor e visualizzarne il risultato nell’area di output della console interattiva.

Suggerimento

Premi Ctrl+Space per visualizzare la lista di completamento automatico.

Nella parte superiore della finestra di dialogo, una barra degli strumenti consente di accedere ad alcuni comandi. Facendo clic con il tasto destro del mouse sull’area di modifica si aprono ulteriori opzioni. Tutti gli strumenti disponibili sono descritti nella tabella seguente.

Tabella 25.1 Strumenti dell’Editor della Console Python

Nome Strumento

Funzione

Posizione

scriptOpen Open script…

Carica un file Python nella finestra di dialogo dell’editor di codice, come nuova scheda

Barra degli Strumenti

showEditorConsole Apre in Editor Esterno

Apre uno script Python salvato nel programma esterno predefinito per la modifica dei file Python

fileSave Salva (Ctrl+S)

Salva lo script corrente

fileSaveAs Salva come… (Ctrl+Shift+S)

Salva lo script corrente come nuovo file

start Esegui script (Ctrl+Shift+E)

Esegui l’intero script con il comando nella console interattiva (questo crea un file compilato in byte con estensione .pyc).

Barra degli Strumenti & Menu Contestuale

helpContents Help contestuale (F1)

Tenta di visualizzare la guida relativa alla stringa selezionata (classe, metodo, oggetto,…) nella corrispondente documentazione API

Menu Contestuale

runConsole Esegui script (Ctrl+E)

Esegue nella console interattiva le righe selezionate nello script

Barra degli Strumenti & Menu Contestuale

editCut Taglia (Ctrl+X)

Taglia il testo selezionato dagli appunti

editCopy Copia (Ctrl+C)

Copia il testo selezionato negli appunti

editPaste Incolla (Ctrl+V)

Incolla un testo tagliato o copiato

searchEditorConsole Trova testo

Consente di cercare e sostituire un testo nello script.

  • Usa la scorciatoia predefinita dell’ambiente desktop per trovare il successivo/precedente (Ctrl+G e Shift+Ctrl+G);

  • Trova automaticamente la prima corrispondenza mentre si digita nella casella di ricerca;

  • Trova automaticamente la prima corrispondenza mentre si digita nella casella di ricerca;

  • Abilita l’opzione searchRegex Usa espressioni regolari nella barra di ricerca per utilizzare espressioni regolari anziché corrispondenze al testo semplice;

  • |sostituisci| Sostituisci il testo corrispondente con quello presente nella casella di sostituzione. Quando si utilizza un’espressione regolare, puoi fare riferimento ai gruppi catturati (ad esempio tramite \1) nel testo di sostituzione. Utilizza Sostituisci tutto per sostituire tutte le corrispondenze in una sola volta.

  • Premendo Esc si chiude la barra di ricerca.

commentEditorConsole Toggle comment (Ctrl+:)

Consente di commentare o rimuovere il commento dalle righe selezionate, aggiungendo o rimuovendo il carattere # (eventualmente seguito da uno spazio) all’inizio delle righe. Se la selezione contiene sia commenti che comandi effettivi, aggiungere # all’inizio di ogni riga non vuota. Premendo nuovamente il pulsante si torna allo stato iniziale.

formatCode Riformattazione codice (Ctrl+Alt+F)

Consente di applicare manualmente varie regole di formattazione (ordinamento delle importazioni, indentazione, lunghezza delle righe, ecc.) al codice, in base alle user-defined settings. Ciò potrebbe richiedere l’installazione di moduli Python aggiuntivi.

classBrowserConsole Ispettore Oggetto…

Mostra e nasconde un browser dedicato con una struttura ad albero delle classi e delle funzioni disponibili nello script. Clicca su una voce per accedere rapidamente alla sua definizione. Lo strumento richiede l’attivazione da Python settings - Run and Debug.

Nascondi editor

Nasconde il blocco dell’editor di codice Python. Per renderlo nuovamente visibile, premi showEditorConsole Mostra pulsante editor dalla barra degli strumenti della console interattiva.

Menu Contestuale

syntaxErrorConsole Controlla sintassi (Ctrl+4)

Esamina il codice e segnala gli errori di sintassi, come parentesi mancanti, due punti, indentazione errata, ecc.

undo Annulla (Ctrl+Z)

Annulla l’ultima operazione

redo Ripristina (Ctrl+Shift+Z)

Ripristina le azioni annullate a uno stato più recente

Seleziona tutto (Ctrl+A)

Seleziona l’intero script

codepadConsole Condividi su GitHub

Condivide lo script come Secret Gist o Public Gist su GitHub, a condizione che sia disponibile un GitHub access token.

options Opzioni…

Apre la finestra di dialogo Impostazioni Python dialog.