gdal_merge.py在便携式Windows二进制文件中不起作用,但在正常安装中工作正常

时间:2019-07-15 06:31:27

标签: python gdal python-embedding

我通常在Windows中安装gdal并设置路径。

我还从gisinternals网站添加了可移植的Windows msvc编译二进制文件。

从已安装的版本访问gdal_merge.py似乎很好,但是当由嵌入式python访问时,相同的代码无法提供正确的输出。

运行正常,没有错误,但是输出图像无效。

path/to/embedded/python.exe path/to/embedded/gdal/bin/gdal/scripts/gdal_merge.py -seperate -o merged.tif one.bin two.bin three.bin

我已经添加了gdal的所有可能路径,以便python的._pth文件可以看到相关文件。

这是我指定路径的内容

设置gdal和其他库路径

set SDK_ROOT=%~dp0gdal\
set SDK_ROOT=%SDK_ROOT:\\=\%
set GNUPLOT_ROOT=%~dp0gnuplot\
set PYTHON_ROOT=%~dp0python-3.7.3-embed-amd64\
set GSL_ROOT=%~dp0gsl2\

SET "PATH=%SDK_ROOT%bin;%SDK_ROOT%bin\gdal\python\osgeo;%SDK_ROOT%bin\gdal\python\;%SDK_ROOT%bin\proj6\apps;%SDK_ROOT%bin\gdal\apps;%SDK_ROOT%bin\ms\apps;%SDK_ROOT%bin\gdal\csharp;%SDK_ROOT%bin\ms\csharp;%SDK_ROOT%bin\curl;%GNUPLOT_ROOT%bin\;%GSL_ROOT%bin\;%PATH%"
SET "GDAL_DATA=%SDK_ROOT%bin\gdal-data"
SET "GDAL_DRIVER_PATH=%SDK_ROOT%bin\gdal\plugins"
SET "PYTHONPATH=%SDK_ROOT%bin\gdal\python\osgeo;%SDK_ROOT%bin\gdal\python;%SDK_ROOT%bin\ms\python;%PYTHON_ROOT%"
SET "PROJ_LIB=%SDK_ROOT%bin\proj6\SHARE"
SET "LD_LIB_PATH=%SDK_ROOT%gsl2\lib"

python._pth文件 这个文件,我只是用所有可能的路径删除了它

python37.zip
.

..\gdal\
..\gdal\bin\curl\
..\gdal\bin\
..\gdal\bin\gdal\python\
..\gdal\bin\gdal\python\osgeo\
..\gdal\bin\gdal\python\scripts\
..\gdal\bin\ms\python\
..\gdal\apps\
..\gdal\plugins\
..\gdal\plugin-external\
..\gdal\plugin-optional\
..\gdal\plugin-optional\msodbc\
..\gdal\bin\gdal-data\
..\gdal\bin\ms\apps\
..\gdal\bin\python\
..\gdal\bin\plugins\oci\
..\gdal\bin\plugins\mssql2008\
..\gdal\bin\proj\apps\
..\gdal\bin\proj\SHARE\
..\gdal\bin\proj6\apps\
..\gdal\bin\proj6\SHARE\

..\gdallibs\include\
..\gdallibs\lib\

..\bin\

..\gsl2\bin\
..\gsl2\include\
..\gsl2\lib\

..\gnuplot\
..\gnuplot\bin\
..\gnuplot\demo\
..\gnuplot\docs\
..\gnuplot\share\

..\jdk8u212-b04-jre\bin\
..\jdk8u212-b04-jre\bin\server\
..\jdk8u212-b04-jre\lib\

..\

我尝试过的事情: 我从已安装的gdal和便携式gdal二进制文件中交换了gdal_merge.py。 它没有改变任何东西。同样的问题。

问题出在哪里?

0 个答案:

没有答案