使用conda安装gdal并设置环境变量

时间:2017-08-31 14:07:24

标签: python conda gdal

我一直在尝试在Windows 8环境中使用Python 2.7和Anaconda来运行 gdal 库。

除了gdal之外,我还安装了libgdal(坦率地说,我不太了解两者之间的区别)。我现在似乎有gdal 2.1.0和2.0.2以及libgdal 2.1.0。

然而,当我运行我的Py代码时,有一个gdal错误:

  

' gdalwarp'不被视为内部或外部命令,   可操作程序或批处理文件。

我已经将GDAL_DATA环境变量设置为指向

  

C:\阿纳康达\ PKGS \ libgdal-2.1.0-vc9_0 \库\共享\ GDAL

我还添加了一条路径,虽然我不完全确定这应该指向的地方:

  

C:\阿纳康达\ PKGS \ libgdal-2.1.0-vc9_0 \库\ BIN

我尝试使用gdal 2.0.2但没有成功。 gdalwarp.exe似乎确实存在于libgdal 2.1.0和gdal 2.0.2下。

有什么想法吗?是否存在安装问题或者我没有正确设置环境变量?

仅供参考,我尝试了各种安装命令,特别是:

conda install gdal
conda install -c conda-forge gdal
conda install -c anaconda gdal

附录:我找到了一个手动解决方案:在运行代码之前,我在终端中设置了GDAL_DATA和PATH变量(指向libgdal 2.1.0)...

然而,当我运行我的Py代码时仍然存在问题:它应该使用gdal_polygonize将tiff文件转换为shp:

cmd = 'gdal_polygonize.py %s -f "ESRI Shapefile" %s'%(dst_tif, dst_shp)

没有错误,但是没有创建shapefile(这会在以后的代码中导致错误)。关于为什么gdal仍然无法正常工作的任何想法?

我试过将env变量指向osgeo:

set PATH=%PATH%;C:\Anaconda2\Lib\site-packages\osgeo\scripts
set GDAL_DATA=C:\Anaconda2\Lib\site-packages\osgeo\data\gdal

Gdalinfo有效,但我的Py代码中使用的gdal_polygonize似乎不起作用。

1 个答案:

答案 0 :(得分:2)

关键是在激活环境时(可能)执行的激活脚本。并非Conda的每个GDAL版本都包含此内容。根据我的经验,最近的Conda-Forge构建非常好。

根据您对py27和GDAL 2.1的要求,我可以按照以下步骤使其正常工作:

1)创建一个新环境:conda create -n gdaltest python=2.7

2)激活:activate gdaltest

3)安装GDAL:conda install gdal=2.1 -c conda-forge

4)重新启动环境:deactivate + activate gdaltest 这会强制执行刚刚安装的激活脚本,这会设置环境变量。

如果我启动python并运行os.system("gdalinfo"),我可以看到它正确拾取。并且运行os.environ['GDAL_DATA']确认路径设置正确。

您可以在以下位置查看(de)激活脚本: C:\Miniconda3\envs\<env name>\etc\conda\activate.d\gdal-activate.bat

几年前,这并没有像现在这样好,所以请确保你有最新的Conda版本(4.3.x)等。

此方法的好处是,在切换环境时,您的路径也会相应更改。如果您混合并匹配不同的GDAL版本,“硬编码”GDAL_DATA路径可能会导致一些兼容性问题(尽管通常应该可以正常工作)。