【问题标题】:R CMD check fails with "undefined exports"R CMD 检查因“未定义的导出”而失败
【发布时间】:2016-02-16 05:44:58
【问题描述】:

我正在尝试创建一个 R 包,但我不断收到错误消息:

Error in namespaceExport(ns, exports) : 
  undefined exports: MCLE, defineFunctions, naiveMLE

在我的包上运行 R CMD check 时。我使用的是roxygen2,错误信息中列出的三个函数是带有@export标签的三个函数。我已经检查过堆栈溢出的类似问题/解决方案:

但这些似乎都不能解决我的问题(我没有使用<<-,我没有使用通用帮助页面导出任何功能,问题不在于ggplot2 或不同的 R 包在 CRAN 上)。

我在删除NAMESPACE文件后构建了包,并且构建成功。我还确认该包具有列为“未定义”的功能,我不知道还要检查什么!

【问题讨论】:

  • MCLE, defineFunctionsnaiveMLE 是你自己的函数吧?
  • @Pascal 是的,完全正确。抱歉,我刚刚意识到我提到它们有导出标签,但我应该注意到它们也是我包中的函数。

标签: r package export roxygen2


【解决方案1】:

我有一个非常相似的问题。你检查你的 .Rbuildignore 文件了吗? 它可能与您要导出的函数的正则表达式匹配有关。

我试图通过将名称放在 .Rbuildignore 中来从构建目录中排除“HTLM_downloads”。不幸的是,这不起作用,因为它忽略了每个包含单词“html”(HTML)的文件。甚至没有@export 解决了这个问题。我需要通过输入^HTML_downloads$ 来锚定表达式。

您可以使用devtools::use_build_ignore("file/dir you want to ignore") 轻松排除文件和/或目录。

希望这有帮助

我要感谢@hadley 的友好和整洁的支持

【讨论】:

  • 谢谢你。我在 .Rbuildignore 中有“foo”,因为我想排除一个具有该名称的文件夹,但它最终掩盖了几个名称中也包含“foo”的导出函数。改写“foo/”可以确保 .Rbuildignore 忽略文件夹并单独保留函数。
  • 非常感谢您的分享!我已经为此敲了 1 天以上的头......
  • 很抱歉,如果您认为我的回答是正确的,请您接受并标记它吗?谢谢
  • 非常有帮助!我不知道这会发生。我有一些用于文件扩展名的自定义正则表达式,我猜它捕获了我的包中的所有函数。对我来说,我删除了 .Rbuildignore 文件中的所有模式,并明确命名了我想忽略的文件和路径。
  • 我遇到了类似的问题,我的全新软件包在.Rbuildignore (smh) 中有我的 /R 文件夹。从文件中删除它,所有构建都很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 2021-10-08
  • 2020-04-27
  • 2017-07-05
  • 1970-01-01
  • 2017-06-18
相关资源
最近更新 更多