R 包安装需要更新版本的依赖项

R 包安装需要更新版本的依赖项,r,r-dbi,R,R Dbi,安装mapview时,我收到错误信息:正在加载命名空间“DBI”0.6-1,但要求>=0.8 > install.packages("mapview") > ... > Error: package or namespace load failed for ‘sf’ in loadNamespace(j <- i[[1L]], > c(lib.loc, .libPaths()), versionCheck = vI[[j]]): namespace ‘D

安装
mapview
时,我收到错误信息:正在加载命名空间“DBI”0.6-1,但要求>=0.8

> install.packages("mapview")
> ... 
> Error: package or namespace load failed for ‘sf’ in loadNamespace(j <- i[[1L]], 
> c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
    namespace ‘DBI’ 0.6-1 is being loaded, but >= 0.8 is required
> ...

我已经尝试卸载并重新安装DBI


我还可以尝试什么?

您的系统上可能安装了多个版本的DBI;使用
installed.packages()

如果无法删除一个或多个DBI软件包(例如,在系统范围的
.libPaths()
位置),解决方法是安装所需的软件包,而不测试它是否已正确安装

install.packages("mapview", INSTALL_opts="--no-test-load")

是否有多个
.libPaths()
,是否有多个DBI?删除旧版本。例如,
pkg=installed.packages();和(行名(PKG)=“dBI”)。这里有几个关于<代码>的问题。警告:删除错误的安装,您将无法执行许多操作。这是相当卑鄙的…我认为错误发生在R test加载安装时,您可以通过
install.packages(…,install_opts=“--no test load”)
告诉R不要这样做,只是澄清一下,DBI>0.8是sf包的依赖项,而不是mapview。如果以这种方式跳过测试,则在尝试从数据库读取功能时,可能会导致意外行为。不过,我不是这些方面的专家。这个问题在类似的背景下再次出现。共享计算机上有多个版本的程序包X,使用
INSTALL\u opts=“--no test load”
可以完美地安装程序包。这一次,错误消息读取:
错误:“ggplot2”的包或命名空间加载失败:。在“ggplot2”的attachNamespace()中,onAttach失败,详细信息:call:NULL错误:“with_preserve_seed”不是从“namespace:withr”导出的对象错误:加载失败的执行已停止
对于存在多个程序包X时测试加载中断安装的原因,您是否有直观的解释?@RichPauloo问题的一个根源是当Rprofile或Renviron(系统范围或用户特定)时将
.libPaths()
设置为与安装包时使用的版本不同的版本,例如,假设
~/.Renviron
具有
.libPaths(“foo”)
,但当前会话以
R--vanilla
开始(因此忽略~/.Renviron)。
install.packages("mapview", INSTALL_opts="--no-test-load")