2017-08-31 54 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路徑可能會導致一些兼容性問題。