document error: cannot open the connection

本文记录了一次在R包开发过程中遇到的文档生成错误及解决过程。错误源于roxygen2的bug,表现为无法打开文件的权限问题。最终发现是由于在@example注释块后未附带示例代码导致,修正后问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 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的错误信息实在是太隐晦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值