2017-08-31 129 views
1

我一直在试图让使用Python 2.7和蟒蛇的GDAL图书馆工作在Windows 8环境。安装与畅达@中并设置环境变量

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

然而,当我跑我的PY代码,还有一个@中的错误:

'gdalwarp' is not recognized as an internal or external command, operable program or batch file.

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

C:\Anaconda\pkgs\libgdal-2.1.0-vc9_0\Library\share\gdal

我还增加了一个路径,虽然我不完全确定这应该指向什么地方:

C:\Anaconda\pkgs\libgdal-2.1.0-vc9_0\Library\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代码的问题:它应该转换为TIFF文件与gdal_polygonize到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工作。

回答

0

关键是在激活环境时(可能)执行的激活脚本。并不是康达每个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']确认路径设置正确。

您可以查看自己的(去)激活脚本: C:\Miniconda3\envs\<env name>\etc\conda\activate.d\gdal-activate.bat

几年前的今天,因为它做到这一点没有工作一样,所以请确保您有最新版本康达(4.3。 x)等

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