Importante

Translation is a community effort you can join. This page is currently translated at 75.34%.

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.

The QGIS Python Console is an interactive shell for Python command executions. It also has a Python file editor that allows you to edit and save your Python scripts. Both console and editor are based on PyQScintilla2 package. To open the console go to Plugins ► Python Console (Ctrl+Alt+P).

29.3.1. La consola interactiva

The console is a Python interpreter that allows you to execute Python commands. Modules from QGIS (analysis, core, gui, server, processing, 3d) and Qt (QtCore, QtGui, QtNetwork, QtWidgets, QtXml) as well as Python’s math, os, re and sys modules are already imported and can be used directly.

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. Input area

The Console input area main features are:

  • 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;

  • Type the following special commands:

    • ? to show a help of the Python Console

    • _api to open QGIS C++ API documentation or _api(object) for a specific object documentation (in QGIS C++ API or Qt API documentation)

    • _pyqgis to open QGIS Python API documentation or _pyqgis(object) for a specific object documentation (in QGIS Python API or Qt API documentation)

    • _cookbook to open PyQGIS Cookbook.

    • ! followed by a command to execute Shell commands from the Python Console. The console will start a subprocess, and forward its output to the Python Console Output. While the subprocess is running, the Python Console Input switches to STDIN mode and forwards entered character to the child process. This makes it possible to send confirmation when the child program asks for it. When the Console is in STDIN mode, pressing Ctrl+C kills the subprocess. It is also possible to affect the result of a command to a variable with the syntax 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.