2014-10-21 9 views
0

Следуя из question я спросил о получении информации о версии от python-qgis, с бриллиантом решение, предоставляемое @falsetru, я бегу в проблему, в результате чего импортировать qgis.utils кажется, чтобы скрыть все исключения. Выполняя следующий код в интерпретаторе, я не получаю никакой трассировки или ничего полезного после поднятого исключения, см. Ниже.исключения/отслеживающий не отображается после импорта QGIS-Utils

>>> import qgis.utils 
>>> qgis.utils.QGis.QGIS_VERSION 
'2.4.0-Chugiak' 
>>> raise Exception('boof!') 
>>> 

Может кто-нибудь сказать мне, как я могу вернуться на TRACEBACK после импорта qgis-utils или другой способ получения информации о версии из python-qgis без необходимости импортировать utils?

Большое спасибо!

+1

Вы попробовали модуль 'traceback'? если не импортировать трассировку и использовать такие функции, как 'traceback.print_exc' или .... –

+0

У меня нет большого опыта работы с модулем 'traceback', которого я боюсь. Я попытался запустить 'traceback.print_exc()', как вы предлагали, но без успеха. Я буду читать этот модуль. Я также заметил модуль предупреждений. Может ли это быть связано с этим? – Mike

+0

Возможно, да. возможно, модуль, в который вы импортировали фильтрованные предупреждения, использует модуль 'warnings'. –

ответ

0

Я нашел решение, которое позволяет мне избежать использования модуля utils для получения информации о версии и вместо этого использует модуль core.

>>> import qgis.core 
>>> qgis.core.Qgis.QGIS_VERSION 
'2.4.0-Chugiak' 
>>> raise Exception('boof!') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
Exception: boof! 

Это не дает полный ответ на мой вопрос, но обеспечивает работу вокруг, чтобы получить информацию о версии для python-qgis.