как поймать ошибку в коде?
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
как поймать ошибку в коде?
Сразу скажу - я плохо знаю python и редко пользуюсь GDAL на нем.
Но есть программа на python'е, которую время от времени я использую и каждый раз с матом - перематом - это GDAL_CALC. Про ее интуитивную "очевидность" и набор справочных материалов, я в это раз спрашивать не буду.
Сразу перейду к очевидному - к коду, к которому обычно посылают на любом вопросе по GDAL, в ответе 3-м или 4-м. Там кода страшно не богато, но как понять, что именно в 60%-80% случаев вызывает ошибку? Потому как выходной растр создается всегда. Просто очень не удобно для утилиты командной строки в конце каждого вызова сидеть и нажимать "закрой программу".
Но есть программа на python'е, которую время от времени я использую и каждый раз с матом - перематом - это GDAL_CALC. Про ее интуитивную "очевидность" и набор справочных материалов, я в это раз спрашивать не буду.
Сразу перейду к очевидному - к коду, к которому обычно посылают на любом вопросе по GDAL, в ответе 3-м или 4-м. Там кода страшно не богато, но как понять, что именно в 60%-80% случаев вызывает ошибку? Потому как выходной растр создается всегда. Просто очень не удобно для утилиты командной строки в конце каждого вызова сидеть и нажимать "закрой программу".
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: как поймать ошибку в коде?
Запускать с параметром -debug и сохранить это в лог, показать тут...
Еще, если все получается, но раздражает ошибка, можно запускать batch-файлом, в конце которого будет вызов pskill.
Еще, если все получается, но раздражает ошибка, можно запускать batch-файлом, в конце которого будет вызов pskill.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: как поймать ошибку в коде?
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 4064
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1061
- Ваше звание: программист
- Откуда: Казань
Re: как поймать ошибку в коде?
лучше поставить Visual Studio + Python toolkit, и запускать в отладчике. Но GDAL - это на 99% ошибка с путями и русскими буквами ...
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: как поймать ошибку в коде?
Спойлер
в visual studio community Python toolkit идёт в комплекте, но pyCharm тоже ничего...лучше поставить Visual Studio + Python toolkit, и запускать в отладчике
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: как поймать ошибку в коде?
Да ошибка скорее всего в используемых бинарниках, а не питоне, поэтому исправить её вряд ли удастся.
-
- Гуру
- Сообщения: 534
- Зарегистрирован: 30 ноя 2006, 13:31
- Репутация: 116
- Откуда: Moscow
Re: как поймать ошибку в коде?
Была аналогичная проблема, решения не нашел. Насколько понял это какой-то конфликт Windows и Numpy. На работе скрипта это никак не сказывалось, просто раздражало появление ошибки в конце. Заморачиваться с переустановками не стал. Просто не использую gdal_calc.py.
С версии GDAL 2.2 вроде как всю растровую алгебру можно делать через VRT Derived Bands.
С версии GDAL 2.2 вроде как всю растровую алгебру можно делать через VRT Derived Bands.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: как поймать ошибку в коде?
Сам код в стандартном пакете GDAL: утилита Gdal_Calc.bat на основе Gdal_calc.py.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: как поймать ошибку в коде?
Хорошо переформулирую вопрос - как радикально, но корректно - с закрытием открытых файлов и очисткой памяти (все таки растры занимают ее обильно), закрыть программу на python'е. Есть очень большая уверенность, что сбой происходит в последнем "return".
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 27 авг 2017, 14:46
- Репутация: 0
- Откуда: Москва
Re: как поймать ошибку в коде?
Бесплатная Visual Studio + python tools for visual studio
https://www.microsoft.com/ru-ru/SoftMic ... unity.aspx
http://streletzcoder.ru/ustanovka-podde ... udio-2015/
Тогда можно отладчиком пройтись по коду и посмотреть где вылетает.
https://www.microsoft.com/ru-ru/SoftMic ... unity.aspx
http://streletzcoder.ru/ustanovka-podde ... udio-2015/
Тогда можно отладчиком пройтись по коду и посмотреть где вылетает.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: как поймать ошибку в коде?
Спасибо за ответы. Буду посмотреть.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя