【问题标题】:GDAL on Python 3.6.5 (64-bit)Python 3.6.5(64 位)上的 GDAL
【发布时间】:2018-06-06 13:01:48
【问题描述】:

过去一个小时,我一直在尝试在 Windows 上的 Python 3.6.5(64 位)上安装 GDAL,但没有任何效果。

我访问了一些关于 SO 的问题,观看了关于 YT 的视频,但没有一个适用于我的情况(这没什么特别的)。

有人可以提供分步解决方案,最好是经过测试的解决方案,这样我就可以弄清楚我到底做错了什么?

如有必要,我愿意提供任何操作系统设置信息/屏幕截图。


更新:我正在尝试安装 GDAL 以将 TIF(16 位)文件转换为 JPG 或 PNG。尽管我设法用第二种方法(在第二次尝试)安装了 GDAL,但我无法使用gdal_translate。所以并不是每个 GDAL 库/版本都适合我。


第一种方法:

  • GDAL 2.3.0(建议here

    • 依赖关系:
      • libgdal(2.3.0 或更高版本)和头文件 (gdal-devel)(我在哪里/如何获得这个?)
      • numpy(1.0.0 或更高版本)和头文件(numpy-devel)
    • 需要“GDAL Windows 二进制文件”。谷歌搜索让我看到了这个:DownloadingGdalBinaries – GDAL

      • 试过GISInternals -> Releases -> release-1911-x64-gdal-2-3-0-mapserver-7-0-7
      • 已下载"gdal-203-1911-x64-core.msi""GDAL-2.3.0.win-amd64-py3.4.msi"。 (最新版本是针对 python 3.4 的?)
      • 已安装 "gdal-203-1911-x64-core.msi""C:\Program Files\GDAL"
      • 在自述文件中,它说

        将安装目录bin文件夹添加到你的系统PATH...

        C:\gdalwin32-1.7\bin

        "C:\Program Files\GDAL" 中没有 "bin" 文件夹。 GDAL 目录中的文件夹:"csharp""gdal-data""gdalplugins""license""projlib"。所以...?

        我什至不打算完成这个,因为它似乎已经过时了(我已经通过电子邮件向它的作者发送了关于描述的信息,所以我希望它得到修复)。我遵循了其他步骤,但显然它没有用。随意尝试一下。


第二种方法:

  • Gohlke Pythonlibs(建议here

    • 已下载"GDAL-2.2.4-cp36-cp36m-win_amd64.whl"
    • 在页面顶部,它说(我可能在第一次尝试时错过了这个)

      许多二进制文件依赖于 numpy-1.14+mkl 和 ...

      所以我下载了"numpy-1.14.4+mkl-cp36-cp36m-win_amd64.whl"(在同一页)

    • 安装它们:

      pip install numpy-1.14.4+mkl-cp36-cp36m-win_amd64.whl

      pip install GDAL-2.2.4-cp36-cp36m-win_amd64.whl

      它有效(虽然我在使用 gdal_translate 时遇到了缺少 dll (ogr_FileGDB) 错误,所以不要使用它)


我会用我尝试过的方法来更新它。

【问题讨论】:

  • 更好地展示你的错误
  • @zimdero 有多种安装GDAL的方法,我至少尝试了其中的三种。你想要哪一个?我特别说“最好是经过测试的”,因为我想从经验中获得建议。如果我们去检查错误消息,我相信我们会遇到很多困难,因为我们甚至不知道我尝试过的安装是否适用于这个特定的 python 版本。
  • 卸载您的 Python 安装。从 anaconda.com 下载并安装 Anaconda 安装程序,它带有 Python 包和许多最流行的包。通过运行命令conda install gdal 安装GDAL
  • 两步:1.安装conda。 2.使用conda install -c conda-forge gdal.
  • 至少列出了 4 种方法here,您尝试了哪种方法,每种方法出现了什么错误?

标签: python windows installation gdal


【解决方案1】:

来自 conda-forge 的预构建 GDAL 版本在 Windows 64 位 python 3.6.5 上运行良好

你可以安装Anaconda(或Miniconda

安装 Anaconda 后,我通常使用 Anaconda 提示符,而不是常规的 windows 命令提示符。

(可选)如果您想将其隔离在特定环境中

我会推荐使用带有 anaconda 的环境,所以创建一些环境 像这样

conda create --name gdal_env python=3.6.5

activate gdal_env

环境不是必需的,可以跳过这一步,继续安装gdal。

安装 gdal

conda install -c conda-forge gdal

我发现 conda-forge 是(迄今为止)在 Windows 上安装 GDAL 最简单的方法。如果由于某种原因您需要使用另一个 python 发行版,我发现这里的预构建二进制文件也可以正常工作 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 如果您关注 this guide

【讨论】:

  • 我对 Anaconda/Miniconda 抱有希望,但我遇到了更多问题。我安装 GDAL 的主要原因是打开 16 位 TIF 文件。我在 Pillow 中无法做到这一点,有人建议 GDAL 可以做到。我已经成功安装了 GDAL(使用 miniconda),但是gdal_translate 抛出了一些错误。 TIF to JPEG 给出JPEG driver doesn't support data type UInt16 错误。 TIF 到 PNG 提供 libpng: profile 'ICC Profile': 'CMYK': invalid ICC profile color space。我想我以后可以解决这些问题(因为它们似乎可以解决),所以我安装了 Pillow(我也需要它)。
  • from PIL import Image 工作正常,但 from PIL import ImageCms 抛出错误:ImportError: cannot import name '_imagingcms'。普通的 Python 没有这个错误。我受够了所有这些问题,所以我现在放弃了。尽管您的回答和其他 cmets 解决了 this 问题(所以 +1),但我的 actual 问题仍然存在。附注:我创建了一个repository,以防我(或其他人)重新审视这些问题。
  • 您是否尝试添加将其映射到 8 位范围的缩放选项?如果我添加该转换工作正常。 gdal_translate -scale -of JPEG cmyk-16.tif cmyk-16.jpg 带有零参数的比例选项只是将 16 位范围映射到 8 位。如果您需要其他一些缩放,您可以将其作为缩放参数提供。我刚刚在您的存储库中的图像上进行了尝试,效果很好
  • 虽然 scale 单独起作用,但它仍然有警告,要摆脱这两个,明确告诉您正在转换为 8bit,如下所示:gdal_translate -scale -ot byte -of JPEG cmyk-16.tif cmyk-16.jpg
  • 你在使用 Anaconda 的 GDAL 吗?我已经卸载了它。我正在使用 Photoshop 修复有问题的 TIF(16 位 CMYK TIF)...在您回复之后,我认为如果我只使用 gdal_translate,我不需要将 GDAL 与 Python 相关联。我刚刚从here 安装了gdal-203-1911-x64-core.msi,但它没有生成正确的图像:no-python(repo 更新)。我应该尝试不同的GDAL版本吗?
猜你喜欢
  • 1970-01-01
  • 2020-09-25
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 2018-01-25
  • 1970-01-01
相关资源
最近更新 更多