我正在尝试在软件包的Imports:
文件中使用Depends:
而不是DESCRIPTION
,但我仍然对此有更多了解;-)
我从this post那里学到的(顺便说一句:很棒的帖子!!)是,我的软件包(例如mypkg
)通过imported.pkg
导入(例如Imports:
)的所有内容都生活在imports:mypkg
环境中,而不是附加在环境中到搜索路径。当试图找到foo
附带的imported.pkg
时,R在遍历搜索列表之前先查找imports:mypkg
。到目前为止,一切都很好。
实际问题
如果imported.pkg
(由mypkg
导入)依赖于某个其他程序包(在该程序包的Depends:
文件的DESCRIPTION
部分中规定),我是否需要将此程序包设置为我的程序包中的Depends:
依赖项?为了让R找到那个包的功能?因此,在我眼下,R似乎对此有所抱怨。
证据
似乎仅导入这样的软件包是不够的。例如,以包roxygen2
(CRAN)为例。导入其他软件包时,它取决于digest
。我导入了它(以及digest
,因为mypkg
也需要它),并检查了环境imports:mypkg
并列出了digest
函数:"digest" %in% parent.env(asNamespace("mypkg"))
返回TRUE
然而,当从属于roxygenize()
的函数中运行mypkg
时,R抱怨说找不到digest
。
最佳答案
您可以看一下我的博客:http://r2d2.quartzbio.com/posts/package-depends-dirty-hack-solution.html
现在我有一个更好,更清洁的解决方案,但尚未发布。
希望能帮助到你。