python子进程找不到现有dll

2024-05-23 22:10:00 发布

您现在位置:Python中文网/ 问答频道 /正文

不久前,我编写了一个计算光栅图块的小工具,效果很好。 现在,经过几个月的不受影响,我不得不再次使用它,突然它吐出了一些丢失的.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.

到目前为止一切都很好,现在来看看wierd部分。当我在硬盘上检查这个精确的位置时,我发现org_FileGDB.dll就在那里。为了使事情变得更为复杂,需要对瓷砖进行计算,但由于一些非常不清楚的原因,颜色会扭曲,但现在让我们只关注.dll问题

这就引出了一个问题:这里出了什么问题

编辑1台机器规格

Windows 10 64位

Python 3.7.2 64位,一个也是唯一一个Python解释器

我在这台机器上安装了Qgis 3.10.2,Qgis提供了自己的python解释器,但它是密封的,以前从未与任何东西发生过冲突,所以在我看来,它不太可能是错误的来源


Tags: in机器foris错误range解释器dll