【问题标题】:Package "Imports" not loading in R development package包“导入”未加载到 R 开发包中
【发布时间】:2026-01-05 10:30:01
【问题描述】:

我正在使用Rstudiodevtoolsroxygen2Rtools 在Windows 环境中在R 中构建一个包。

包在R CMD CHECK 中显示没有问题。但是,当我尝试使用library("mypkg") 加载包时,DESCRIPTIONImports 下指定的包没有被加载(Loading required package: 消息不存在)。在使用pkgDepends("mypkg") 时,$Depends 显示为character(0)

我必须使用library() 加载所需的包,mypkg 才能运行。

我正在使用 命名空间导入 而不是 package::function() 语法。所有需要的包都在NAMESPACEimports()中。

为什么会这样?如何解决?

【问题讨论】:

    标签: r import dependencies package


    【解决方案1】:

    这是正确的行为。 Imports 只是意味着你包中的代码可以看到你从其他包中导入的函数。其他包不会像Depends 那样放在search 路径上。

    延伸阅读:
    Better explanation of when to use Imports/Depends

    【讨论】:

    • 我是这么理解的。但是对于一个包,Imports 包也会被加载。例如,在包stringdist 的情况下,parallelImports 下给出。但是当我们通过library("stringdist")加载的时候,出现了Loading required package: parallel的消息,同时parallel也被加载了。
    • 我没有收到带有stringdist 0.8.2/R 3.1.2/Win7 and Red Hat'. What version of stringdist`/R/OS 的消息你在使用吗?您确定在您运行另一个命令后该消息没有出现吗?
    • stringdist 0.8.0/R 3.0.2/Win7。我重新启动了R试了一下。仍然收到相同的消息。
    • 知道了。对于 stringdist 0.8.0 parallelDepends 中。所以我想我应该使用Depends 而不是Imports