Python读取空间文件报错Invalid projection: EPSG:4326如何解决
报错原因
该错误为pyproj依赖的PROJ原生库版本与配套数据库版本不匹配导致:
新版pyproj(v3.0及以上)要求使用PROJ v7.1及以上版本的原生库,旧版PROJ的内置SQLite数据库(proj.db)表结构缺少
area_of_use_auth_name等新增字段,执行CRS查询时触发SQL报错。
解决方法
方案1:conda重装匹配依赖(优先选择)
conda会自动匹配pyproj与对应PROJ原生库的版本,避免手动安装的版本冲突问题:
- 先卸载当前环境内的相关安装包:
pip uninstall -y pyproj geopandas fiona conda remove -y pyproj geopandas fiona proj
- 从conda-forge源重新安装整套空间依赖:
conda install -c conda-forge geopandas pyproj
方案2:安装适配旧版PROJ的pyproj版本
如果不想升级系统自带的PROJ版本,可根据系统PROJ版本安装对应兼容的pyproj版本:
- 系统PROJ为v6.x:安装pyproj==2.6.1
- 系统PROJ为v5.x:安装pyproj==2.2.2
安装命令示例:
pip install pyproj==2.6.1
方案3:手动指定PROJ数据库路径
如果环境内存在多个PROJ版本导致冲突,可在导入空间库前手动指定pyproj使用正确的数据库路径:
import os # 替换为当前pyproj安装包附带的proj数据目录 os.environ['PROJ_LIB'] = '/your/python/env/lib/pythonX.X/site-packages/pyproj/proj_dir/share/proj' import geopandas as gpd
修复验证
执行以下代码无报错即可确认问题解决:
import pyproj print(pyproj.CRS("EPSG:4326"))
内容的提问来源于stack exchange,提问作者Orlando G
相关产品推荐
相关产品推荐

