R语言tidyverse包安装成功但library()加载报错问题咨询
问题根因
报错核心是R会话启动阶段就已将3.1.1版本的cli包加载到内存中,和tidyverse依赖要求的cli≥3.3.0版本冲突。install.packages("tidyverse")仅会将符合版本要求的新版cli安装到磁盘存储中,无法替换当前会话已经加载到内存的旧版本cli,因此切换项目、重复运行加载命令都无法解决问题,该故障和R、RStudio版本无关,无需升级对应程序。
解决步骤
按顺序操作,不要跳步:
- 完全退出所有R、RStudio进程,确认后台无残留R会话运行。
- 重新启动RStudio后,不要运行任何脚本、不要加载任何第三方包,直接在控制台执行命令升级cli到最新版本:
install.packages("cli", dependencies = TRUE)
- 升级完成后直接执行命令校验cli版本:
packageVersion("cli")
控制台返回的版本号≥3.3.0即为升级成功,此时再执行library(tidyverse)即可正常加载。
- 如果上述操作后仍报错,检查R启动配置是否自动加载了旧版cli:
- 控制台执行
usethis::edit_r_profile()打开用户级启动配置文件.Rprofile - 删除文件中所有包含
library(cli)、require(cli)的代码行,保存文件后完全重启R会话即可。
- 控制台执行
- 如果仍未解决,手动清理本地残留的旧版cli包后重装:
- 控制台执行
.libPaths()查看本地R包存储路径 - 进入对应路径,删除所有名称带cli的包文件夹
- 重启R后执行
install.packages(c("cli", "tidyverse"))完成重装。
- 控制台执行
注意:只要当前会话已经加载了旧版cli,就无法在不重启会话的前提下替换内存中的包版本,因此升级cli前不要运行任何其他加载包的操作,部分RStudio插件、自定义启动项会在会话初始化阶段自动加载旧版cli,是这类故障最常见的诱因。
内容的提问来源于stack exchange,提问作者laura rk
相关产品推荐
相关产品推荐

