草庐IT

python - Python 3.6.5(64 位)上的 GDAL

coder 2024-06-20 原文

在过去的一个小时里,我一直在尝试在 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”
      • 在 README 中,它说

        Add the installation directory bin folder to your system 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”
    • 在页面顶部,它说(我可能在第一次尝试时错过了这个)

      Many binaries depend on numpy-1.14+mkl and ...

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

    • 安装它们:

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

      pip 安装 GDAL-2.2.4-cp36-cp36m-win_amd64.whl

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


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

最佳答案

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

您可以安装Anaconda (或 Miniconda)

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

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

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

conda create --name gdal_env python=3.6.5

激活gdal_env

不需要环境,因此您可以跳过此步骤并继续安装 gdal。

安装gdal

conda install -c conda-forge gdal

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

关于python - Python 3.6.5(64 位)上的 GDAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50721107/

有关python - Python 3.6.5(64 位)上的 GDAL的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  5. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  6. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  7. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  8. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  9. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  10. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

随机推荐