Importante

La traducción es un esfuerzo comunitario al que puedes unirte. Esta página está actualmente traducida en 94.52%.

29.3. Consola Python de QGIS

Como verá más adelante en este capítulo, QGIS ha sido diseñado con una arquitectura de complementos. Los complementos se pueden escribir en Python, un lenguaje muy famoso en el mundo geoespacial.

QGIS trae una API de Python (ver PyQGIS Developer Cookbook para algunos ejemplos de código) para permitir que el usuario interactúe con sus objetos (capas, función o interfaz). QGIS también tiene una consola Python.

La Consola Python de QGIS es un intérprete de comandos interactivo para la ejecución de comandos Python. También tiene un editor de archivos Python que le permite editar y guardar sus scripts Python. Tanto la consola como el editor están basados en el paquete PyQScintilla2. Para abrir la consola vaya a Complementos ► Consola Python (Ctrl+Alt+P).

29.3.1. La consola interactiva

La consola es un intérprete de Python que permite ejecutar comandos de Python. Los módulos de QGIS (analysis, core, gui, server, processing, 3d) y Qt (QtCore, QtGui, QtNetwork, QtWidgets, QtXml) así como los módulos math, os, re y sys de Python ya están importados y se pueden utilizar directamente.

La consola interactiva esta compuesta por una barra de herramientas, un área de entrada y una de salida.

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

Figura 29.15 Consola de Python

29.3.1.1. Barra de herramietas

La barra de herramientas propone las siguientes herramientas:

29.3.1.2. Área de entrada

Las principales prestaciones del área de introducción de datos de la consola son:

  • Completado de código, resaltado de sintaxis y atajos para las siguientes APIs:

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

  • Ctrl+Alt+Espacio para ver la lista de autocompletado habilitados en Configuración de la consola Python;

  • Ejecute fragmentos de código desde el área de entrada escribiendo y presionando Enter o Ejecutar comando;

  • Ejecute fragmentos de código desde el área de salida usando :guilabel:ʻIntroducir seleccionado` del menú contextual o presionando Ctrl+E;

  • Examine el historial de comandos desde el área de entrada usando las teclas de flecha Arriba y Abajo y ejecute el comando que desee;

  • Ctrl+Shift+Espacio para ver el historial de comandos: haga doble clic en una fila para ejecutar el comando. También se puede acceder al diálogo Historial de comandos desde el menú contextual del área de entrada;

  • Guarde y borre el historial de comandos. El historial se guardará en el archivo console_history.txt en la carpeta activa user profile;

  • Escriba los siguientes comandos especiales:

    • ? para mostrar una ayuda de la Consola Python

    • _api para abrir la documentación QGIS C++ API o _api(object) para la documentación de un objeto específico (en la documentación de QGIS C++ API o Qt API)

    • _pyqgis para abrir la documentación de API Python QGIS o _pyqgis(object) para la documentación de un objeto específico (en la documentación de la API Python QGIS o la API Qt).

    • _cookbook to open PyQGIS Cookbook.

    • ! seguido de un comando para ejecutar comandos Shell desde la Consola de Python. La consola iniciará un subproceso, y reenviará su salida a la Salida de la Consola Python. Mientras se ejecuta el subproceso, la Entrada de la Consola Python cambia al modo STDIN y reenvía los caracteres introducidos al proceso hijo. Esto hace posible enviar confirmación cuando el programa hijo la pide. Cuando la Consola está en modo STDIN, pulsando Ctrl+C se mata el subproceso. También es posible afectar el resultado de un comando a una variable con la sintaxis var = !cmd.

      >>> !echo QGIS Rocks!
      QGIS Rocks
      
      >>> !gdalinfo --version
      GDAL 3.6.2, released 2023/01/02
      
      >>> !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']
      

Truco

Reutilizar comandos ejecutados desde el panel de salida

Puede ejecutar fragmentos de código desde el panel de salida seleccionando un texto y presionando Ctrl+E. No importa si el texto seleccionado contiene la indicación del intérprete (>>>, ...).

29.3.2. El Editor de código

Usa el botón showEditorConsole Mostrar Editor para activar el widget del editor. Permite editar y guardar archivos de Python y ofrece funcionalidades avanzadas para gestionar tu código (comentar y descomentar código, comprobar la sintaxis, compartir el código vía GitHub y mucho más). Las características principales son:

  • Completado de código, resaltado de sintaxis y atajos para las siguientes APIs:

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

  • Ctrl+Space para ver la lista de autocompletado.

  • Compartir fragmentos de código a través de GitHub.

  • Ctrl+4 comprobar sintaxis.

  • Barra de búsqueda (ábrala con el acceso directo predeterminado del entorno de escritorio, generalmente Ctrl+F):

    • Utilice el acceso directo del entorno de escritorio predeterminado para buscar el siguiente/anterior (Ctrl+G y Shift+Ctrl+G);

    • Automáticamente encuentra la primera coincidencia al escribir en el cuadro de búsqueda;

    • Establecer la cadena de búsqueda inicial a la selección al abrir la búsqueda;

    • Presionando Esc cierra la barra de búsqueda.

  • Inspector de objetos: un navegador de clase y de función;

  • Ir a la definición de un objeto con un click del ratón (desde el Inspector de Objetos);

  • Ejecutar fragmentos de código con el comando runConsole Ejecutar seleccionado en el menú contextual;

  • Ejecutar el script entero con el comando start Ejcutar Script (esto crea un archivo compilado por bytes con la extensión .pyc).

Nota

Ejecutar parcial o totalmente un script desde el Editor de código muestra el resultado en el área de salida de la consola.

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

Figura 29.16 El editor de la consola de Python

Truco

Guardar las opciones

Para guardar el estado de los widgets de la consola, debe cerrar la consola Python desde el botón de cierre. Esto le permite guardar la geometría para restaurarla en el siguiente inicio.