首页 > 解决方案 > 我的包无法识别 R 中导入包的导出函数

问题描述

我正在写一个 R 包。使用 roxygen2,我有这个处理器语句:

##' @import Other_Package

据我了解,此语句将从 Other_Package 导入每个导出的函数。但是当我跑的时候:

devtools::test()

一些测试用例失败,因为它无法找到Other_Package 的某些功能。

标签: rr-package

解决方案


确保包含Other_Package在您的说明文件中。你可以很容易地做到这一点:

usethis::use_package("Other_Package")

此外,请确保在测试之前重新渲染文档。这将包括重新创建您的 NAMESPACE 文件。roxygen2很棒,将为您处理这部分:

devtools::document()

要确认,请转到您的 NAMESPACE 文件并确保import(Other_Package)在那里找到。使用时roxygen2,请勿手动编辑 NAMESPACE 文件。

现在,您的测试应该可以正常运行:

devtools::test()

替代解决方案

我建议您在包内进行显式调用,而不是依赖您的 NAMESPACE。所以 from 的任何函数Other_Package都会有Other_Package::前缀(例如function1()会是Other_Package::function1())。在整个程序包中执行此操作,包括任何测试。


推荐阅读