Anaconda python3.5 windows gdal安装
Posted
技术标签:
【中文标题】Anaconda python3.5 windows gdal安装【英文标题】:Anaconda python3.5 windows gdal instal 【发布时间】:2018-01-31 18:37:11 【问题描述】:尝试为我的 anaconda3 python (Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] 安装 gdal win32)
我尝试遵循几个指南,但到目前为止没有一个有效。
我最初尝试过这个指南
https://pypi.python.org/pypi/GDAL
我从http://www.gisinternals.com/query.html?content=filelist&file=release-1800-x64-gdal-2-2-1-mapserver-7-0-6.zip 下载了release-1800-x64-gdal-2-2-1-mapserver-7-0-6.zip 并将文件夹解压到C:。
然后我将解压文件夹中的 bin 文件夹添加到用户环境变量中。然后该指南告诉您将数据文件夹添加到名为 GDAL_DATA 的新环境变量中,但解压后的文件夹中没有数据文件夹。但是 bin 文件夹中有一个 gdal-data 文件夹,所以我添加了那个路径。我采取的另一个未包含在指南中的步骤是将 bin\gdal\python 添加到 PYTHONPATH 环境变量中,因为否则 python 无法找到 osgeo。
当我在 python 中尝试from osgeo import gdal
时,我得到以下结果
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\release-1800-x64-gdal-2-2-1-mapserver-7-0-6\bin\gdal\python\osgeo\__init__.py", line 21, in <module>
_gdal = swig_import_helper()
File "C:\release-1800-x64-gdal-2-2-1-mapserver-7-0-6\bin\gdal\python\osgeo\__init__.py", line 17, in swig_import_helper
_mod = imp.load_module('_gdal', fp, pathname, description)
File "C:\Users\username\Anaconda3\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "C:\Users\username\Anaconda3\lib\imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: The specified module could not be found.
我尝试过的另一种方法是从与上述相同的站点下载 .msi 安装程序、gdal-202-1800-x64-core.msi 和 GDAL-2.2.1.win-amd64-py3.4.msi。我首先安装核心组件,它为我提供了一个 C:\programfiles\GDAL 文件夹,我将其添加到用户环境变量中。我还添加了一个名为 GDAL_DATA (C:\programfiles\GDAL\gdal-data) 和 GDAL_DRIVER_PATH (C:\programfiles\GDAL\gdalplugins) 的环境变量。
在命令窗口中运行gdalinfo --version
会得到GDAL 2.2.1, released 2017/06/23
,所以这似乎可以工作,但是让它与python 一起工作比较棘手。
然后我运行 GDAL-2.2.1.win-amd64-py3.4.msi 来安装 python 绑定。我选择在本地驱动器上安装并将 site-packages 文件夹中的文件添加到我的 python 安装的 site-packages 文件夹中。
在 python 中尝试from osgeo import gdal
会得到
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\release-1800-x64-gdal-2-2-1-mapserver-7-0-6\bin\gdal\python\osgeo\__init__.py", line 21, in <module>
_gdal = swig_import_helper()
File "C:\release-1800-x64-gdal-2-2-1-mapserver-7-0-6\bin\gdal\python\osgeo\__init__.py", line 17, in swig_import_helper
_mod = imp.load_module('_gdal', fp, pathname, description)
File "C:\Users\username\Anaconda3\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "C:\Users\username\Anaconda3\lib\imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: The specified module could not be found.
和以前一样。我确实注意到 .msi 安装程序只能升级到 python 3.4,而我有 python 3.5。
所以问题是: 我的 python 版本与 gdal 不兼容还是有什么方法可以让它工作?
【问题讨论】:
【参考方案1】:如果您已经使用 Anaconda(或 Miniconda),则无需从其他来源安装 GDAL。如果您仅从 gisinternals 安装了这些 GDAL 版本以与 Python 一起使用,我建议如下:
还原您使用的指南,因此卸载它们并一起删除 GDAL_DATA 系统变量。 将 Conda 更新到最新版本 (4.3.x),最新版本更好地支持在激活 Conda 环境时设置 GDAL_DATA 所需的激活脚本。 (使用conda update conda -n root
更新)。
使用 Conda 安装 GDAL,这将确保您获得兼容的二进制文件(从而避免 DLL 错误)。
我更喜欢使用conda install gdal -c conda-forge
,它将安装由 Conda-Forge 原料编译的 GDAL,但也有其他版本 (https://anaconda.org/search?q=gdal)。
以上步骤应该足够了。如果您想从控制台使用 GDAL 命令行实用程序,激活您安装 GDAL 的环境将使这成为可能。 这种方法的好处之一是,当您切换到不同的 Conda 环境时,Conda 会将 GDAL_DATA 值更改为活动环境中的值。这允许您混合和匹配不同的 GDAL 版本而不会发生任何冲突。
【讨论】:
解决了这个问题。一些额外的信息;我也试过conda install gdal
,但我收到了版本不兼容的消息。我可以假设 conda 更新(我已经有 4.3.21 版)仅用于环境切换,并且在 conda install gdal -c conda-forge
中指定下载源是什么给你正确的 gdal 文件?以上是关于Anaconda python3.5 windows gdal安装的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 上使用 Python 3.5 Anaconda 的底图