我正在尝试使用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 现在我有一个更好、更干净的解决方案,但尚未发布。 希望能帮助到你。
关于r - 如何处理导入包 (`Depends:` ) 的依赖关系 (`Imports:` ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255881/