Страница 1 из 1

как поймать ошибку в коде?

Добавлено: 21 авг 2017, 00:51
Boris
Сразу скажу - я плохо знаю python и редко пользуюсь GDAL на нем.
Но есть программа на python'е, которую время от времени я использую и каждый раз с матом - перематом - это GDAL_CALC. Про ее интуитивную "очевидность" и набор справочных материалов, я в это раз спрашивать не буду.

Сразу перейду к очевидному - к коду, к которому обычно посылают на любом вопросе по GDAL, в ответе 3-м или 4-м. Там кода страшно не богато, но как понять, что именно в 60%-80% случаев вызывает ошибку?
21.08.jpg
21.08.jpg (33.17 КБ) 13155 просмотров
Потому как выходной растр создается всегда. Просто очень не удобно для утилиты командной строки в конце каждого вызова сидеть и нажимать "закрой программу".

Re: как поймать ошибку в коде?

Добавлено: 21 авг 2017, 01:43
ericsson
Запускать с параметром -debug и сохранить это в лог, показать тут...
Еще, если все получается, но раздражает ошибка, можно запускать batch-файлом, в конце которого будет вызов pskill.

Re: как поймать ошибку в коде?

Добавлено: 21 авг 2017, 09:29
Александр Мурый
Boris писал(а):
21 авг 2017, 00:51
Сразу перейду к очевидному - к коду
Таки где же сам код?

Re: как поймать ошибку в коде?

Добавлено: 21 авг 2017, 12:30
gamm
лучше поставить Visual Studio + Python toolkit, и запускать в отладчике. Но GDAL - это на 99% ошибка с путями и русскими буквами ...

Re: как поймать ошибку в коде?

Добавлено: 21 авг 2017, 12:35
trir
Спойлер
лучше поставить Visual Studio + Python toolkit, и запускать в отладчике
в visual studio community Python toolkit идёт в комплекте, но pyCharm тоже ничего...
ЗЫ spoiler не работает...

Re: как поймать ошибку в коде?

Добавлено: 21 авг 2017, 12:52
freeExec
Да ошибка скорее всего в используемых бинарниках, а не питоне, поэтому исправить её вряд ли удастся.

Re: как поймать ошибку в коде?

Добавлено: 21 авг 2017, 13:12
alexandr cherepanov
Была аналогичная проблема, решения не нашел. Насколько понял это какой-то конфликт Windows и Numpy. На работе скрипта это никак не сказывалось, просто раздражало появление ошибки в конце. Заморачиваться с переустановками не стал. Просто не использую gdal_calc.py.
С версии GDAL 2.2 вроде как всю растровую алгебру можно делать через VRT Derived Bands.

Re: как поймать ошибку в коде?

Добавлено: 21 авг 2017, 17:20
Boris
Александр Мурый писал(а):
21 авг 2017, 09:29
Таки где же сам код?
Сам код в стандартном пакете GDAL: утилита Gdal_Calc.bat на основе Gdal_calc.py.

Re: как поймать ошибку в коде?

Добавлено: 21 авг 2017, 17:23
Boris
Хорошо переформулирую вопрос - как радикально, но корректно - с закрытием открытых файлов и очисткой памяти (все таки растры занимают ее обильно), закрыть программу на python'е. Есть очень большая уверенность, что сбой происходит в последнем "return".

Re: как поймать ошибку в коде?

Добавлено: 31 авг 2017, 16:14
Serpuh
Бесплатная Visual Studio + python tools for visual studio
https://www.microsoft.com/ru-ru/SoftMic ... unity.aspx
http://streletzcoder.ru/ustanovka-podde ... udio-2015/
Тогда можно отладчиком пройтись по коду и посмотреть где вылетает.

Re: как поймать ошибку в коде?

Добавлено: 01 сен 2017, 10:31
Boris
Спасибо за ответы. Буду посмотреть. ;)