Python GIS 开源项目与源码从哪里找
Python GIS 开源项目与源码主要集中在 GitHub 上的 OSGeo、geopandas、opengeos、geopython 等组织仓库,以及 Python OS Ecosystem for GIS and Earth Observation、Awesome-Geospatial 这类汇总列表站点。安装优先通过 conda-forge 创建独立环境一键拉取(含 GDAL/GEOS/PROJ 等 C 依赖),源码则用 git clone 后本地 pip install -e . 开发。截至 2026 年 11 月,核心库如 GeoPandas 1.2、Shapely 2.2、Rasterio 1.5 等均已支持 Python 3.11+,新手先装这几套就能覆盖矢量栅格读写与分析。

集中列表和核心仓库去哪找
动手前先把“目录”摸清,比漫无目的搜 GitHub 高效得多。Python OS Ecosystem for GIS and Earth Observation 把库按 core/data structures、analysis & modelling、visualization、data extraction 分类,并标出 PyPI/conda-forge 版本与下载量,适合快速筛选。Awesome-Geospatial 是更长的 geospatial 工具清单,Python 部分直接列出 GeoPandas、Shapely 等入口。opengeos 组织托管 leafmap、geemap、segment-geospatial、geoai 等 Jupyter 友好包;OSGeo 组织有 GDAL、GRASS 源码;geopandas 组织除了主库还有 pyogrio、dask-geopandas、contextily;geopython 则偏 OGC 服务(pygeoapi、OWSLib、pywps)。
- 想看全景:先打开 ecosystem 站点对照分类,再去 Awesome-Geospatial 补漏。
- 要交互地图与地球引擎:直接进 opengeos 仓库找 leafmap/geemap。
- 要底层读写与投影:盯 OSGeo/gdal、shapely、pyproj、rasterio、fiona。
- 要 QGIS 二次开发:源码在 qgis/QGIS,预编译包从官网下,配合本站 QGIS Python控制台怎么用?常用命令有哪些? 上手控制台。
如果你刚接触 Python GIS,建议先过一遍 gis Python入门指南,从解析Gis python库开始,再回来挑仓库,方向更清晰。
怎么用 conda 或 pip 把库装起来
Windows 上纯 pip 最容易卡在 GDAL/Fiona/Rasterio 编译,强烈建议新环境走 conda-forge。验收标准:能 import geopandas、rasterio、shapely 且无报错,并能读一个小 shapefile 或 GeoTIFF。
- 安装 Miniconda 或 Anaconda 后,新建环境:conda create -n geo_env python=3.12
- 激活:conda activate geo_env
- 只加 conda-forge 并设严格优先级:conda config –env –add channels conda-forge;conda config –env –set channel_priority strict
- 一次装核心栈:conda install geopandas rasterio shapely fiona pyproj folium cartopy
- (可选)交互地图再装:conda install leafmap 或 pip install leafmap geemap
- 验证:python -c “import geopandas, rasterio, shapely; print(geopandas.__version__)”
若坚持用 pip,多数库已有含依赖的 wheels,直接 pip install geopandas shapely rasterio fiona pyproj 即可;但仍建议先用 conda 装好 libgdal 等系统库再 pip,减少冲突。从源码安装时:git clone 对应仓库 → cd 进目录 → pip install -e .(需事先用 conda 把 GDAL/GEOS/PROJ 装好)。
主要库版本、依赖与对比
下表汇总截至 2026 年 11 月公开发布信息,实际以各仓库 release 页为准。新版本普遍抬高了 Python 下限,装前核对。
| 库 | 最新版本(发布大致时间) | Python 要求 | 关键依赖 | 主要用途 |
|---|---|---|---|---|
| GeoPandas | 1.2.0(2026-09) | ≥3.11 | pandas≥2.2、shapely≥2.1、pyproj≥3.7、pyogrio≥0.8 | 矢量数据处理(类 Pandas) |
| Shapely | 2.2.0(2026-10) | ≥3.11 | GEOS≥3.11、NumPy≥1.26 | 几何对象创建与分析 |
| Rasterio | 1.5.2(2026-09) | ≥3.12 | GDAL≥3.8、NumPy≥2 | 栅格读写(NumPy 友好) |
| Fiona | 1.10.1(2024-09) | ≥3.8 | GDAL≥3.4 | 矢量文件读写(OGR) |
| PyProj | 3.8.0(2026-09) | — | wheels 含 PROJ 9.8.1 | 投影与坐标转换 |
| GDAL(Python 绑定) | 3.13.3(2026-08) | — | 自身 C 库 | 底层栅格/矢量翻译 |
| Folium | 0.20.0 稳定 / 1.0.0rc1 | ≥3.9 | — | Leaflet 交互地图 |
| Cartopy | 0.26.0(2026-09) | ≥3.11 | Matplotlib≥3.8、Shapely≥2.0 | 制图投影可视化 |
| Leafmap | 约 0.63.1(2026-08) | — | 基于 folium/ipyleaflet | Jupyter 交互分析 |

从源码克隆后怎么本地开发与验收
只装包不够,改代码、提 PR、调试时必须拿源码。步骤与验收如下:
- 选好仓库(例如 geopandas/geopandas),git clone 到本地,切到最新 tag 或 main。
- 用已装好 C 依赖的 geo_env,执行 pip install -e .(可编辑模式,改源码立即生效)。
- 跑官方测试或自己写最小脚本:读一份本地 shapefile → 重投影 → 写出 GeoPackage;栅格则打开 → 读窗口 → 写 COG。
- CRS 相关用 pyproj 检查 EPSG 是否正确;大文件可试 dask-geopandas。
- 提交前看仓库 CONTRIBUTING 与 CI 要求,避免依赖版本漂移。
更多完整开发流程可参考 gis python 开发入门全解析,gis Python新手指南,里面把环境、库选择到简单脚本串起来了。
常见问题
为什么 Windows 上 pip 装 GeoPandas/Rasterio 经常失败?
多半是 GDAL/GEOS 等 C 库没有对应编译环境或路径,报 “A GDAL API version must be specified” 一类错。优先用全新 conda-forge 环境严格安装;或按 GDAL → Fiona → pyproj → shapely → geopandas 顺序装预编译 wheel,避免 defaults 与 conda-forge 混用。
GeoPandas 现在还依赖 Fiona 吗?
1.x 起默认推荐/使用 pyogrio 做矢量 I/O,速度更快,Fiona 变为可选。装完整栈时两者都装也无妨,按官方 release notes 核对即可。
从源码编译需要什么额外准备?
系统需有 gdal-config、GEOS、PROJ 开发头文件;可先 conda install gdal geos proj,再设置 GDAL_CONFIG 环境变量后 pip install 。纯源码编译门槛高,日常学习用 wheels/conda 足够。
怎么快速确认某个库是否还在积极维护?
看 GitHub 最近 release 日期、stars、issue 响应,以及 ecosystem.pythongis.org 上的版本与下载量列。超过一年无 release 且 issue 堆积的库,优先选替代方案。
找 Python GIS 开源项目与源码,先盯汇总列表和几个核心组织仓库,再用 conda-forge 建干净环境装包,需要改代码时再 git clone。建议立刻动手:按上面 conda 四步建 geo_env,装上 GeoPandas + Rasterio,跑通读写与投影,然后挑一个感兴趣的仓库(leafmap 或 geemap 很适合入门)克隆试改;配合本站入门教程,两天内就能从“只会搜”变成“能装、能读、能改”。