使用devtools安装GitHub私有R包gbm.auto时依赖缺失报错求助
解决
gbm.auto安装时依赖缺失的根本问题 这个问题的核心是你的gbm.auto包的**DESCRIPTION文件没有完整声明所有依赖包**——R的包管理系统不会自动从NAMESPACE文件里识别依赖,必须在DESCRIPTION里明确列出,否则install_github不会帮你自动安装这些依赖,导致懒加载失败。
具体解决步骤:
完善
DESCRIPTION的依赖声明
打开你包目录下的DESCRIPTION文件,找到Imports字段(如果没有就新增),把所有直接依赖的包列进去,包括你NAMESPACE里导入的包,以及之前报错的foreign、survival(这些可能是直接依赖包的间接依赖,明确声明能避免安装时的遗漏)。示例:Imports: dismo, mapplots, rgeos, foreign, survival或者用
devtools的命令自动添加更省心,在R里运行:devtools::use_package("dismo") devtools::use_package("mapplots") devtools::use_package("rgeos") devtools::use_package("foreign") devtools::use_package("survival")这个命令会自动把依赖写入
DESCRIPTION的正确位置,还能帮你区分是Imports还是其他类型的依赖。推送更新并重新安装
把修改后的DESCRIPTION文件推送到GitHub仓库,然后再运行:install_github("SimonDedman/gbm.auto")这次R会自动安装所有
DESCRIPTION里声明的依赖包,包括它们的间接依赖,不会再出现逐个缺失的问题。
为什么之前能正常运行?
之前你的本地环境已经安装了这些依赖包,所以包能正常加载;但换了环境或者重装R后,这些依赖缺失,而DESCRIPTION里没声明,安装脚本就不会自动帮你安装,才会出现报错。R的包安装机制严格遵循DESCRIPTION的声明,NAMESPACE只负责控制包内的导入导出逻辑,不负责依赖的自动安装。
内容的提问来源于stack exchange,提问作者dez93_2000
相关产品推荐
相关产品推荐

