2016-07-27 2 views
6

Итак, я не должен жаловаться, но это раздражает. На моей установке (Windows Server 2012 R2) импортирующей GDAL в Python в терминале печатает следующие:Импорт GDAL печатает много сообщений об ошибках, но все еще работает

>>> import gdal 
ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
BAG.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
BAG.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
FITS.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
FITS.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
GMT.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
GMT.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
HDF4.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
HDF4.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
HDF4Image.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
HDF4Image.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
HDF5.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
HDF5.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
HDF5Image.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
HDF5Image.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
netCDF.dll 
193: %1 is not a valid Win32 application. 

ERROR 1: Can't load requested DLL: C:\Program Files (x86)\GDAL\gdalplugins\gdal_ 
netCDF.dll 
193: %1 is not a valid Win32 application. 

>>> 

Но я все еще могу использовать GDAL без каких-либо проблем, несмотря на эти сообщения. В Jupyter эти ошибки не печатаются. По сути, я не забочусь о тех сообщениях, пока функциональность не сломается, а для моей утилиты это не так. Тем не менее, я вызываю функцию, которая импортирует GDAL, используя multiprocessing Pool, на 12 ядрах, и он печатает это без необходимости 12 раз. Это раздражает, главным образом потому, что это затмевает вывод, который меня интересует: ход выполнения. Что я могу сделать по этому поводу (способ скрыть эти сообщения или решить основные проблемы, которые вызывают их появление)?

Примечание. Версия Python: Python 3.5.1 | Anaconda custom (64-bit) | (по умолчанию, 16 февраля 2016, 09:49:46) [MSC v. 1900 64 бит (AMD64)] на win32. GDAL, очевидно, установлен из Anaconda из пользовательского пакета IOOS. Версия GDAL - 1.11.4, np110py35_vc14_7.

+0

Вы пытались использовать [модуль регистрации для сбора предупреждений] (https://docs.python.org/3/library/logging.html#logging.captureWarnings)? Перед импортом: 'import logging; logging.captureWarnings (True); import gdal; logging.captureWarnings (False) '. Это может скрыть их от печати до stderr. –

+0

Я пробовал все, прямо от перенаправления консоли на использование пакетов, чтобы игнорировать предупреждения. Хотя я не пробовал ваше конкретное решение, я бы подумал, что это не сработает. Это не питон, который печатает сообщения GDAL, но сам GDAL. Эти предупреждения исходят из кода C GDAL, таким образом, который не передается через привязки GDAL Python. Таким образом, ничто из Python не сделает трюк, это параметр конфигурации GDAL, который нужно изменить. Я не знаю, как это сделать. – Kartik

+0

Кроме того, я был стажером в компании, где мой проект включал использование GDAL. Поскольку эта стажировка закончилась, я больше не работаю с GDAL или не имею доступа к компании, чтобы опробовать ваше решение. Но если кто-то использует GDAL и имеет похожие проблемы, этот человек может воспользоваться вашим решением и может комментировать, чтобы сообщить нам, как он работает. – Kartik

ответ

1

Глядя на the source, вы можете увидеть, что он пытается импортировать модули в блок try/except. Он будет печатать ошибки GDAL, но не будет вызывать исключения Python, если этот режим не включен с gdal.UseExceptions().

Вероятно, некоторые функции/функции будут ошибочными, но вы просто не используете их в своих сценариях. В частности, он ищет некоторые драйверы для HDF и других форматов. Возможно, возникла проблема с компиляцией OSGEO/GDAL, поскольку поддержка некоторых из этих форматов требует специальных сборок.

Вы должны либо правильно построить, если вам нужна поддержка этих форматов, либо начать с новой «простой» установки.

 Смежные вопросы

  • Нет связанных вопросов^_^