document error: cannot open the connection

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/arcers/article/details/84852789
  • Att: R 包开发中遇到的坑。
  • Date: 2018-12-06

错误描述

最近在为公司开发一个R的工具包,在新增了一些功能之后,使用devtools::document()生成.Rd文件时报错,如下,从错误信息上看感觉是权限问题。

> devtools::document()
Updating pkt documentation
Writing NAMESPACE
Loading pkt
Error in file(con, "r") : cannot open the connection
In addition: Warning message:
In file(con, "r") :
  cannot open file 'E:\r-windows\stage_2\pkt': Permission denied

解决过程

1 权限

由于从错误上看似乎是文件夹写入权限问题,于是各种折腾,并不能解决问题。

2 stack overflow

通过搜索错误信息,得到stack overflow上的相似错误:
https://github.com/klutometis/roxygen/issues/766
大致原因是roxygen2的bug, 按照解决方案:

devtools::install_github("gustavdelius/roxygen")

并不能解决问题。尝试反复卸载安装roxygen2的各种版本,不能解决问题。

3 手动排查

新建一个包工程,逐步将原有工程中的脚本移进来,终于定位错误源头:

#' Create yik
#'
#' @example
#'
#' @family report
yik <- function(){

}

@example块后漏加了示例对应的代码,将这行去掉,问题解决:

> devtools::document()
Updating pkt documentation
Loading pkt
Writing NAMESPACE
Writing yik.Rd

总结

roxygen2的错误信息实在是太隐晦。

猜你喜欢

转载自blog.csdn.net/arcers/article/details/84852789