Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用conda安装gdal并设置环境变量_Python_Conda_Gdal - Fatal编程技术网

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

Python 使用conda安装gdal并设置环境变量,python,conda,gdal,Python,Conda,Gdal,我一直在尝试在Windows8环境中使用Python2.7和Anaconda来获取gdal库的工作 除了gdal,我还安装了libgdal(坦率地说,我并不真正理解两者之间的区别)。我现在似乎有了GDAL2.1.0和2.0.2以及LIBGDAL2.1.0 但是,当我运行Py代码时,有一个gdal错误: “gdalwarp”未被识别为内部或外部命令, 可操作的程序或批处理文件 我已经将GDAL_数据环境变量设置为指向 C:\Anaconda\pkgs\libgdal-2.1.0-vc9\u 0\L

我一直在尝试在Windows8环境中使用Python2.7和Anaconda来获取gdal库的工作

除了gdal,我还安装了libgdal(坦率地说,我并不真正理解两者之间的区别)。我现在似乎有了GDAL2.1.0和2.0.2以及LIBGDAL2.1.0

但是,当我运行Py代码时,有一个gdal错误:

“gdalwarp”未被识别为内部或外部命令, 可操作的程序或批处理文件

我已经将GDAL_数据环境变量设置为指向

C:\Anaconda\pkgs\libgdal-2.1.0-vc9\u 0\Library\share\gdal

我还添加了一条路径,尽管我不完全确定这条路径应该指向哪里:

C:\Anaconda\pkgs\libgdal-2.1.0-vc9\u 0\Library\bin

我在GDAL2.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_数据和路径变量(指向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_多边形化似乎不起作用

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

根据py27和GDAL 2.1的要求,我可以通过以下步骤使其工作:

1) 创建新环境:
conda Create-n gdaltest python=2.7

2) 激活:
Activate gdaltest

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

4) 重新激活环境:
停用
+
激活gdaltest
这将强制执行刚安装的激活脚本,这将设置环境变量

如果我启动python并运行
os.system(“gdalinfo”)
,我可以看到它被正确地拾取。运行
os.environ['GDAL\u DATA']
确认路径设置正确

您可以在以下位置查看(取消)激活脚本:
C:\Miniconda3\envs\\etc\conda\activate.d\gdal activate.bat

几年前,这并没有像今天这样有效,所以请确保您有一个最新的Conda版本(4.3.x)等

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