При открытии растра в BlenderGDAL происходит сбой, но с CLI все в порядкеPython

Программы на Python
Ответить
Anonymous
 При открытии растра в BlenderGDAL происходит сбой, но с CLI все в порядке

Сообщение Anonymous »

Я пытаюсь поработать с BlenderGIS.
В частности, я мучительно отлаживаю дополнение для использования Gdal и добавляю поддержку большего количества файлов.
Прямо сейчас я пытаюсь открыть файл .jp2 (jpeg2000).
Я открыл свой CLI в той же папке, что и блендер, используя его python.exe. Чтобы убедиться, что я использую одни и те же зависимости, все.
В моем командном интерфейсе я могу запустить эти три строки:

Код: Выделить всё

>>> path = 'C:\\Users\\Me\\Documents\\PIA\\Cartes\\ORTHOHR_1-0_RVB-0M20_JP2-E080_LAMB93_D02A_2021-01-01\\ORTHOHR\\1_DONNEES_LIVRAISON_2023-09-00007\\OHR_RVB_0M20_JP2-E080_LAMB93_D2A-2021\\2A-2021-1160-6110-LA93-0M20-E080.jp2'
>>> ds = gdal.Open(path, gdal.GA_ReadOnly)
>>> ds

Это означает, что он делает то, что должен.
В Python тот же фрагмент кода:

Код: Выделить всё

(Where self is my file object. self.path is a string, i see it in the debugger)
if self.path is None or not self.fileExists:
raise IOError("Cannot find file on disk")

ds = gdal.Open(self.path, gdal.GA_ReadOnly)
Немедленно вылетает.
Сгенерированный файл краш.txt выглядит так:

Код: Выделить всё

# backtrace
Exception Record:

ExceptionCode         : EXCEPTION_ACCESS_VIOLATION
Exception Address     : 0x00007FF8A4B43020
Exception Module      : MSVCP140.dll
Exception Flags       : 0x00000000
Exception Parameters  : 0x2
Parameters[0] : 0x0000000000000000
Parameters[1] : 0x0000000000000000

Stack trace:
MSVCP140.dll        :0x00007FF8A4B42F10  Thrd_yield
gdal.dll            :0x00007FF84F643320  GDALOpenInfo::AreSiblingFilesLoaded
gdal.dll            :0x00007FF84F642E50  GDALOpenInfo::GDALOpenInfo
gdal.dll            :0x00007FF84F659450  GDALOpenEx
gdal.dll            :0x00007FF84F659420  GDALOpen
_gdal.cp311-win_amd64.pyd:0x00007FF88F6A560B  Symbols not available
И насколько я знаю, я могу читать файлы dll, загружаемые в память:

Код: Выделить всё

0x00007FF88F610000                      _gdal.cp311-win_amd64.pyd
0x00007FF84E980000 3.9.2.0              gdal.dll
0x00007FF9AD2F0000 10.0.26100.2605      WLDAP32.dll
0x00007FF8D82E0000 10.0.26100.2454      ODBC32.dll
0x00007FF8682D0000                      proj_9_4.dll
0x00007FF891630000                      geos_c.dll
0x00007FF88A1D0000                      geos.dll
0x00007FF9AA830000 10.0.26100.1         DPAPI.DLL
0x00007FF9432C0000                      _gdalconst.cp311-win_amd64.pyd
0x00007FF88CE20000                      _ogr.cp311-win_amd64.pyd
0x00007FF88F5A0000                      _osr.cp311-win_amd64.pyd
0x00007FF8E29D0000                      _gdal_array.cp311-win_amd64.pyd

Я открыл, как мне кажется, файл-нарушитель, _gdal.cp311-win_amd64.pyd в разделе «Зависимости» (утилита для проверки зависимостей файлов). И он говорит, что python311.dll отсутствует, что не имеет смысла, потому что Python вообще не работал бы, если бы это было так, верно?
Он также присутствует и в той же папке, что и Python В любом случае .exe.
Изображение

Я также проверил разрешения, проблема здесь не в этом.

Код: Выделить всё

a = os.stat(self.path)
b = oct(a.st_mode)
b
'0o100666'
Что я могу с этим поделать?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... li-is-fine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»