Ошибка атрибута другой версии gdal в python – gdal.RegisterAll

Я написал небольшую программу на Python, которая используется в разных операционных системах и с разными версиями gdal.

Я использую Debian Linux (Python 2.7.3 и Gdal 1.9.0), и в начале кода я обычно вызываю

import gdal
gdal.RegisterAll()

Однако несколько пользователей моей программы сообщили, что с никогда не версиями gdal (например, 1.9.2) это вызывает AttributeError (AttributeError: объект 'module' не имеет атрибута 'AllRegister'»), говорящий, что функция RegisterAll() неизвестна . Об этой ошибке сообщалось как для систем Windows, так и для Linux.

У кого-нибудь есть идея о том, что изменилось, и нужно ли вам регистрировать драйверы в более новых версиях gdal? Вероятно, это вопрос для списка рассылки разработчиков, но, возможно, некоторые люди читают этот пост.


person Curlew    schedule 14.03.2013    source источник


Ответы (1)


Не используйте его — это ненужно. Из Руководства по GDAL API:

Python автоматически вызывает GDALAllRegister() при импорте модуля gdal.

person Mike T    schedule 14.03.2013
comment
спасибо! Тем не менее мне любопытно, почему он был удален. В настоящее время я создаю несколько hasattr if-фраз вокруг этих частей. - person Curlew; 14.03.2013
comment
В OGR есть ogr.RegisterAll(), а в GDAL есть gdal.AllRegister() (переставленные слова). Однако ни один из них не нужно вызывать, так что не утруждайте себя их использованием или созданием hasattr логики для их поддержки. Я не могу отследить какую-либо историю, если звонки когда-либо требовались. - person Mike T; 17.03.2013