构建R包错误:对象列为导出,但在命名空间中不存在

11 r package

我正在构建R包.最近,我删除并重命名了R/allFunctions.R中的几个函数.我以前能够自动更新NAMESPACE,但由于某种原因,我现在无法做到,并得到一些错误,如下所示:

library(packageName)
library(roxygen2)
library(devtools)
install()
ERROR: loading failed
* removing ‘/Library/Frameworks/R.framework/Versions/3.1/Resources/library/packageName’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/3.1/Resources/library/packageName’
Error: Command failed (1)
document()
Updating packageName documentation
Loading packageName
Warning message:
In setup_ns_exports(pkg, export_all) :
  Objects listed as exports, but not present in namespace: functionOne, functionTwo
Run Code Online (Sandbox Code Playgroud)

我清楚地看到,我有一些在命名空间中不存在的对象被列为导出.但是,我删除了allFunctions.R文件中的所有@export.我在NAMESPACE中看到一些新命名的函数名称不存在,并且一些旧的(自重命名的)函数名称仍然存在.我可以手动改变它,但我知道这很危险,并且想要避免那些糟糕的技术.

如果您有任何想法,请告诉我!谢谢.

小智 6

@jtr13 的答案也对我有用。只需运行devtools::document()第二次,警告就会消失。

> devtools::document()
Updating pavm documentation
Loading pavm
Writing NAMESPACE
Deleting evlCalcTime.Rd
Deleting initTimeStamp.Rd
Warning message:
In setup_ns_exports(pkg, export_all) :
Objects listed as exports, but not present in namespace: evlCalcTime, 
initTimeStamp

> devtools::document()
Updating pavm documentation
Loading pavm
Run Code Online (Sandbox Code Playgroud)


dmc*_*mca 3

我刚刚做了类似的事情:我从 R/allFunctions.R 中删除了 3 个导出函数并运行 devtools::document()。这给了我以下错误:

Warning message:
In setup_ns_exports(pkg, export_all) :
  Objects listed as exports, but not present in namespace: getAccounts, getClients, getDeposits
Run Code Online (Sandbox Code Playgroud)

我通过从 NAMESPACE 文件中手动删除 3 个 export() 函数解决了这个问题。

  • 我相信虽然您收到警告消息,但“devtools::document()”确实解决了问题。我删除了一个函数,运行了“devtools::document()”,收到了警告,再次运行了“devtools::document()”,没有更多警告。 (7认同)
  • @jtr13我相信答案就在评论中;我**不**建议手动编辑命名空间(!!) (3认同)