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上安装Anaconda和python

在 Windows 上使用 Python 3.5 Anaconda 的底图

window下安装tensowflow

Windows下安装TensorFlow

windows10安装anaconda,配置tensorflow

Windows 10 +Anaconda+tensorflow+cuda8.0 环境配置