解惑Python:一文解决osgeo库安装失败问题

Osgeo(Open Source Geospatial Foundation)是一个支持开源地理空间数据处理的基金会,我们可以在python中使用“osgeo”库来访问其提供的高效地理空间数据。例如,我们使用该模块提供的GDAL处理栅格数据,使用OGR处理矢量数据,使用OSR进行坐标系统参考和投影转换处理等。它的环境配置极其依赖于GDAL库(Geospatial Data Abstraction Library),GDAL也是一个开源库,它的功能与osgeo库绑死了,有助于Python更好地处理地理空间数据。

小编想使用osgeo库进行nc文件转tif文件的处理,在PyCharm安装osgeo库的时候,显示:ERROR: Failed to build installable wheels for some pyproject.toml based projects (osgeo)随后,小编使用“Windows+R”进入cmd命令,安装,仍然报同样的错误。

小编百思不得其解,查阅了许多大佬的资料后,发现osgeo模块的安装还是有点技术含量的,觉得还是要趁热打铁,写个文章分享一下,记录一下解决这个麻烦的步骤。

1 安装imagecodecs库

第一步,我们要安装imagecodecs库,它支持多种常见的图像格式,当然也包含我们的目标tif格式,为方便后续的图像处理和安装osgeo模块,先安装此库。

(1)如果你是cmd命令,很简单,采用代码: 

C:\Users\你的用户名>python --versionC:\Users\你的用户名>pip install imagecodecs

第一行是检查python版本,进入python编译环境。检查完版本后,第二步则是安装库。

(2)如果你是在PyCharm里面,那直接在下方的Python软件包里面搜索库,点击安装即可。

小编在安装这个包的过程中,一开始使用本地网络进行安装,因为这个大小有20多MB,而大部分包都是国外的,安装会非常慢,容易因网络问题安装过程出现失败。为解决这个问题,加快Python包在国内的安装速度,想到了可以配置镜像源进行安装

在此列出常见的镜像源地址:

a.清华大学镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/

b.阿里云镜像源:Simple Index

c.中国科学院大学镜像源:Verifying - USTC Mirrors

小编使用的是清华大学镜像源。那讲到这里,有部分同学就会问了,应该怎么配置镜像源环境呢?也很简单,键盘“Windows+R”进入“cmd”命令,代码输入:

C:\Users\你的用户名>pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

像下图,你会看到如下结果,说明已经镜像源环境配置成功了:

 接下来,我们重新安装imagecodecs库,重新在cmd中输入“pip install imagecodecs”,产生结果:

很nice,说明镜像源地址配置成功了(红色),而且安装速度也快了很多,中国宝宝值得拥有!

2 安装GDAL依赖库

 这一步有点小麻烦,GDAL库安装成功是osgeo库成功的关键。首先,如果你直接在Pycharm找到GDAL库安装,可能会出现和一开始安装osgeo库一样的问题,都是显示没有Wheel支持,因此我们要另寻出路,手动安装。

(1)找到GDAL的发布下载地址,下载对应电脑版本和Python环境的GDAL库。

给出GDAL不同版本下载地址:https://github.com/cgohlke/geospatial-wheels/releases

页面长这样,是GitHub上面的。我们往下翻,找到GDAL库不同版本的下载链接:

目前GDAL已经更新到了3.10版本,这里主要看你的Python版本是上面,小编用的是Python3.13,电脑是64位的,因此,我们选择cp313的64位版本(红色划线),点击即下载该版本的安装包。

(2)记住刚刚安装包的下载存储位置,找到项目当前的工作环境。

 工作环境我们可以看PyCharm的控制台,一般会显示,比如小编的:

据此,找到:C:\Users\用户名\PycharmProjects\PythonProject\.venv\Scripts (python.exe前)

把刚刚下载好的安装包复制一份,粘贴到这个这个目录下面。 

(3)正确使用cmd命令安装GDAL库

接下来,就是关键的一步,我们还是键盘“Windows+R”进入“cmd”命令,输入代码:

C:\Users\用户名>cd C:\Users\用户名\PycharmProjects\PythonProject\.venv\Scripts

这里的代码命令其实将cmd切换到项目Python的工作目录,在目录下进行编程指令。接着,继续输入代码"pip install xxx.whl"(这里是配置你刚刚下载的GDAL库):

C:\Users\用户名\PycharmProjects\PythonProject\.venv\Scripts>pip install GDAL-3.10.1-cp313-cp313-win_amd64.whl

如下图所示输入刚刚的代码:

因为我这里已经安装好了,所以会出现 is already installed的结果,如果大家是第一次安装的话,一般会出现Successfully..的结果,说明GDAL库就安装成功了。

如果你不放心的话,还可以在PyCharm的软件安装包中再搜索一遍:

恭喜你,如果显示已安装,说明GDAL库被你安装成功了,接着,我们回到当前的工作目录文件夹,也会发现一大波和gdal有关的文件出现了:

 接着,回到上一个文件夹,找到如下地址:

C:\Users\用户名\PycharmProjects\PythonProject\.venv\Lib\site-packages:

点击site-packages,打开库的已安装目录,你会神奇的发现,osgeo已经被安装了!!!

 进一步打开osgeo模块,发现我们一开始谈到的osgeo的一些处理地理空间数据的工具都顺利安装了,真不错。

总结一下,要安装osgeo模块,关键在GDAL依赖库的安装,如果能够顺利安装GDAL依赖库,因其是osego的模块,因此osgeo的部分模块也能够得到自动安装,此时再运行代码,发现代码并不报错,能够正常运行了。

本文分享就到这里了,参考文献如下:

(1)如果还不会安装GDAL依赖库,可以继续阅读:

pip无法安装/pip安装osgeo失败_pip install osgeo-CSDN博客

osgeo python安装入门实例_osgeo库安装-CSDN博客

(2)如果不会配置镜像源,可以继续阅读:

菜鸟笔记-4.配置镜像源【pycharm最新版(23.2.5及以上)方法】_pycharm镜像-CSDN博客

今天的笔记就写到这里,如果你安装成功了,或者还有什么建议,欢迎在评论区交流!!感谢您的支持和关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React入门 - 0.React简介

React入门 - React简介 A Brief Introduction to React By JacksonML 1. 关于React React是一个知名的Web框架。众所周知,jQuery, Angular, Vue等框架都曾闪亮登场,并且,都仍然在全球市场占有一席之地。React这个颇有担当的新锐&#xff0…

如何在Windows下使用Ollama本地部署DeepSeek R1

参考链接: 通过Ollama本地部署DeepSeek R1以及简单使用的教程(超详细) 【DeepSeek应用】DeepSeek R1 本地部署(OllamaDockerOpenWebUI) 如何将 Chatbox 连接到远程 Ollama 服务:逐步指南 首先需要安装oll…

PL/SQL 异常处理

目录 一、命名的系统异常 1.常见命名的系统异常 2.预定义的系统异常数量以及描述 3.处理命名的系统异常的一般步骤 二、程序员定义的异常 1.概念 2.自定义异常的定义与抛出 3.自定义异常的处理 三、未命名的系统异常 1.概述 2.处理未命名的系统异常的方法 3.使用场景 …

网络原理-

文章目录 协议应用层传输层网络层 数据链路层 协议 在网络通信中,协议是非常重要的概念.协议就是一种约定. 在网络通信过程中,对协议进行了分层 接下来就按照顺序向大家介绍每一种核心的协议. 应用层 应用层是咱们程序员打交道最多的一层协议.应用层里有很多现成的协议,但…

【面试】Java面试频繁问到的题最新整理(附答案)

文章目录 一、Java基础部分面试题 1.1. Java面向对象的三个特征1.2. Java中基本的数据类型有哪些 以及他们的占用字节1.3. int和Integer的区别1.4. String、StringBuilder、StringBuffer的区别及使用场景1.5. ArrayList、Vector和LinkedList的区别及使用场景1.6. Collection和…

从零搭建微服务项目Base(第7章——微服务网关模块基础实现)

前言: 在前面6章的学习中已经完成了服务间的调用实现,即各微服务通过nacos或eureka服务器完成服务的注册,并从nacos中拉取配置实现热更新。当某个服务接口需要调用其他服务时,通过feign定义接口,并通过注解配置服务名…

C# ConcurrentQueue 使用详解

总目录 前言 在C#多线程编程中&#xff0c;数据共享如同走钢丝——稍有不慎就会引发竞态条件&#xff08;Race Condition&#xff09;或死锁。传统Queue<T>在并发场景下需要手动加锁&#xff0c;而ConcurrentQueue<T>作为.NET Framework 4.0 引入的线程安全集合&a…

在Vue项目中使用three.js在前端页面展示PLY文件或STL文件

前言&#xff1a;这是一个3d打印局域网管理系统的需求 一、安装three.js three.js官网&#xff1a;https://threejs.org/docs/#manual/en/introduction/Installation 我用的是yarn,官网用的是npm 二、使用three.js 1.在script部分导入three.js import * as THREE from thr…

DeepSeek 助力 Vue 开发:打造丝滑的右键菜单(RightClickMenu)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

大数据学习(46) - Flink按键分区处理函数

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…

10分钟上手DeepSeek开发:SpringBoot + Vue2快速构建AI对话系统

作者&#xff1a;后端小肥肠 目录 1. 前言 为什么选择DeepSeek&#xff1f; 本文技术栈 2. 环境准备 2.1. 后端项目初始化 2.2. 前端项目初始化 3. 后端服务开发 3.1. 配置文件 3.2. 核心服务实现 4. 前端服务开发 4.1. 聊天组件ChatWindow.vue开发 5. 效果展示及源…

Transformer多头注意力并行计算原理与工业级实现:从数学推导到PyTorch工程优化

一、核心数学原理剖析 1.1 多头注意力矩阵分解 Q XW^Q ∈ R^{nd_k} K XW^K ∈ R^{nd_k} V XW^V ∈ R^{nd_v} 多头分解公式&#xff1a; head_i Attention(QW_i^Q, KW_i^K, VW_i^V) 其中 W_i^Q ∈ R^{d_kd_k/h}, W_i^K ∈ R^{d_kd_k/h}, W_i^V ∈ R^{d_vd_v/h} (h为头数…

通过监督微调提升多语言大语言模型性能

引言 澳鹏助力一家全球科技公司提升其大语言模型&#xff08;LLM&#xff09;的性能。通过提供结构化的人工反馈形式的大语言模型训练数据&#xff0c;让该模型在30多种语言、70多种方言中的表现得到优化。众包人员们进行多轮对话&#xff0c;并依据回复的相关性、连贯性、准确…

大数据开发治理平台~DataWorks(核心功能汇总)

目录 数据集成 功能概述 使用限制 功能相关补充说明 数据开发 功能概述 数据建模 功能概述 核心技术与架构 数据分析 功能概述 数据治理 数据地图 功能概述 数据质量 功能概述 数据治理资产 功能概述 使用限制 数据服务 功能概述 数据集成 DataWorks的数据…

用Nginx打造防盗链护盾

用Nginx打造防盗链护盾 一、你的网站正在"为他人做嫁衣"&#xff1f; 想象一下这个场景&#xff1a; 你精心拍摄的摄影作品、录制的课程视频、设计的原创素材&#xff0c;被其他网站直接盗用链接。 更气人的是——当用户在他们网站查看这些资源时&#xff0c;消耗的…

STM32 看门狗

目录 背景 独立看门狗&#xff08;IWDG&#xff09; 寄存器访问保护 窗口看门狗&#xff08;WWDG&#xff09; 程序 独立看门狗 设置独立看门狗程序 第一步、使能对独立看门狗寄存器的写操作 第二步、设置预分频和重装载值 第三步、喂狗 第四步、使能独立看门狗 喂狗…

Kubernetes的Ingress 资源是什么?

在Kubernetes中&#xff0c;Ingress资源是一种用于管理集群外部对内部服务访问的API对象&#xff0c;主要用于将不同的外部请求路由到集群内的不同服务&#xff0c;以下是关于它的详细介绍&#xff1a; 定义与作用 Ingress资源定义了从集群外部到内部服务的HTTP和HTTPS路由规…

vue3-03初学vue3中的配置项setup(Composition API (组合API组件中所用到的:数据、方法等,均要配置在setup中)

1.关于setup Vue3.0中一个新的配置项&#xff0c;值为一个函数.setup是所有Composition API (组合API)“表演的舞台”m组件中所用到的:数据、方法等等&#xff0c;均要配置在setup中。 2..setup函数使用 setup函数的两种返回值 1.若返回一个对象&#xff0c;则对象中的属性、…

【go语言规范】 使用函数式选项 Functional Options 模式处理可选配置

如何处理可选配置&#xff1f; Config Struct 方式 (config-struct/main.go) 这是最简单的方式&#xff0c;使用一个配置结构体&#xff1a; 定义了一个简单的 Config 结构体&#xff0c;包含 Port 字段创建服务器时直接传入配置对象优点&#xff1a;简单直接缺点&#xff1a…

leetcode 2585. 获得分数的方法数

题目如下 数据范围 莫要被困难的外衣骗了&#xff0c;本题就是有数量限制的完全背包问题。显然我们可以令 f(x,y)为当有x种题目时分数为y时的方法数 令某种题目的数量为k 那么方法数应该是 f(x,y) f(x - 1,y - k * (分值))其中(0 < k < 题目数量)通过代码 class So…