4 votos

¿Por qué ya no hay mensajes de error después de importar módulos QGIS en python?

Tengo un problema cuando escribo código python incluyendo los módulos qgis. Como se puede ver a continuación, cuando suelo llamar a una variable que no existe (por ejemplo), recibo el mensaje de error habitual. Justo lo que se espera que ocurra. Pero después de haber importado qgis.core y qgis.utils en python, todos los mensajes de error desaparecen (ver más abajo). Esto obviamente hace que la depuración de código sea extremadamente tediosa, ya que nunca obtengo ninguna indicación, de por qué y dónde falló un código.

>>> print this_variable_does_not_exist
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'this_variable_does_not_exist' is not defined
>>> from qgis.core import *
>>> from qgis.utils import *
>>> print this_variable_does_not_exist
>>>                          (<< why is there no error here?)

¿Cómo puedo detener este comportamiento "supresor de errores"?

3voto

alexis.kennedy Puntos 402

En qgis.utils anula el manejador de excepciones para que pueda mostrar una salida de error Python personalizada en un diálogo Qt en la aplicación GUI en ejecución ( ver código del módulo ).

Para eliminar la anulación, haga lo siguiente:

>>> from qgis import utils
>>> print x
>>> utils.uninstallErrorHook()  
>>> print x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined

O, siguiendo su ejemplo de código:

>>> from qgis.utils import *
>>> print x
>>> uninstallErrorHook()  
>>> print x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X