Итак, я не должен жаловаться, но это раздражает. На моей установке (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.
Вы пытались использовать [модуль регистрации для сбора предупреждений] (https://docs.python.org/3/library/logging.html#logging.captureWarnings)? Перед импортом: 'import logging; logging.captureWarnings (True); import gdal; logging.captureWarnings (False) '. Это может скрыть их от печати до stderr. –
Я пробовал все, прямо от перенаправления консоли на использование пакетов, чтобы игнорировать предупреждения. Хотя я не пробовал ваше конкретное решение, я бы подумал, что это не сработает. Это не питон, который печатает сообщения GDAL, но сам GDAL. Эти предупреждения исходят из кода C GDAL, таким образом, который не передается через привязки GDAL Python. Таким образом, ничто из Python не сделает трюк, это параметр конфигурации GDAL, который нужно изменить. Я не знаю, как это сделать. – Kartik
Кроме того, я был стажером в компании, где мой проект включал использование GDAL. Поскольку эта стажировка закончилась, я больше не работаю с GDAL или не имею доступа к компании, чтобы опробовать ваше решение. Но если кто-то использует GDAL и имеет похожие проблемы, этот человек может воспользоваться вашим решением и может комментировать, чтобы сообщить нам, как он работает. – Kartik