python подпроцесс не может найти существующую DLL - PullRequest
0 голосов
/ 27 марта 2020

Некоторое время go я написал небольшой инструмент для расчета растровых плиток, который работал нормально. Теперь, после нескольких месяцев не тронутости, мне пришлось использовать его снова, и внезапно он выплевывает некоторые недостающие ошибки DLL.

Я поставил соответствующий бит кода ниже


    print('Die default tilesize is 5000x5000px')
    tilelenght = 5000
    x = 0
    y = 0
    print("calculation tile")
    for i in range(0, width, tilelenght):
        y = 0
        for j in range(0, height, tilelenght):
            gdaltranString = f'gdal_translate -of GTIFF -srcwin {i}, {j}, {tilelenght}, {tilelenght} {input_filepath} {output_filepath}{x}_{y}.tif'
            subprocess.run(gdaltranString)
            y = y+1
        x = x+1
    print("tile calculated")

Консоль выводит на печать :

Input file size is 60000, 30000
0...10...20...30...40...50...60...70...80...90...100 - done.
ERROR 1: Can't load requested DLL: C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\osgeo\gdalplugins\ogr_FileGDB.dll
126: Module not found.

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

В связи с этим возникает вопрос, что здесь не так?

РЕДАКТИРОВАТЬ 1 Машинные характеристики

Windows 10 64 бит.

Python 3.7.2 64-бит, один и только Python интерпретатор.

У меня есть Qgis 3.10.2 на этой машине, и Qgis поставляет свой собственный интерпретатор python, но на самом деле он запечатан и никогда ничего не мешает, так что IMO вряд ли будет источником ошибка.

...