加载RStoolbox时出现‘Cannot find proj.db’错误求助
加载RStoolbox包时PROJ/GDAL相关错误的解决方案
问题详情
加载RStoolbox时触发报错:
> library(RStoolbox) This is version 1.0.2.1 of RStoolbox Error: package or namespace load failed for ‘RStoolbox’: .onAttach failed in attachNamespace() for 'RStoolbox', details: call: NULL error: [rast] empty srs In addition: Warning message: PROJ: proj_create_from_database: Cannot find proj.db (GDAL error 1)
当前依赖组件版本:
sf::sf_extSoftVersion() GEOS GDAL proj.4 GDAL_with_GEOS USE_PROJ_H PROJ "3.13.0" "3.10.1" "9.5.1" "true" "true" "9.5.1"
已尝试操作:
- 检查win-library中sf和terra包内的proj.db文件
- 重新安装PROJ和GDAL
- 在R中直接设置环境变量
- 确保所有依赖已安装
解决方案
1. 手动指定PROJ_LIB环境变量
在R中执行命令,将PROJ_LIB指向R包内proj.db所在的实际路径(示例路径需替换为你的实际R包位置):
# 指向terra包的proj文件夹 Sys.setenv(PROJ_LIB = "C:/Users/你的用户名/Documents/R/win-library/4.4/terra/proj") # 或指向sf包的proj文件夹 Sys.setenv(PROJ_LIB = "C:/Users/你的用户名/Documents/R/win-library/4.4/sf/proj")
设置完成后重新尝试加载RStoolbox:
library(RStoolbox)
2. 彻底重装依赖包
完全卸载相关包并清理残留:
remove.packages(c("RStoolbox", "terra", "sf"))
从CRAN重新安装二进制包(Windows默认优先二进制):
install.packages(c("sf", "terra", "RStoolbox"))
安装过程请勿中断,确保所有依赖组件自动安装完成。
3. 配置系统级环境变量
若R内设置无效,直接修改Windows系统环境变量:
- 右键「此电脑」→属性→高级系统设置→环境变量
- 新建系统变量
PROJ_LIB,值设为R包中proj.db所在文件夹(如C:\Users\你的用户名\Documents\R\win-library\4.4\terra\proj) - 重启R后再次加载RStoolbox
4. 验证基础依赖功能
先加载terra包测试核心功能是否正常:
library(terra) # 创建测试栅格并设置坐标系 r <- rast(nrow=10, ncol=10) crs(r) <- "EPSG:4326" print(r)
若此操作无报错,说明PROJ/GDAL配置正常,再尝试加载RStoolbox;若仍报错,需再次确认PROJ_LIB路径是否准确。
内容的提问来源于stack exchange,提问作者Rony Golder
相关产品推荐
相关产品推荐

