簡體   English   中英

devtools::check_man() 給出錯誤但 devtools::check() 沒有

[英]devtools::check_man() gives error but devtools::check() does not

我正在開發 package ( https://github.com/dpmcsuss/iGraphMatch/ )。

我剛開始使用devtools::check()等來檢查問題。 目前,我沒有收到任何錯誤、警告或注釋 (YAY)。

不幸的是,有時我想使用devtools::check_man()來檢查文檔中的問題,因為這應該更快。 當我運行它時,我得到以下 output。

> devtools::check_man()
Updating iGraphMatch documentation
Loading iGraphMatch
Writing NAMESPACE
Writing NAMESPACE
Checking documentation...
Error: cannot source package code:
cannot add bindings to a locked environment

我試過分離 package,卸載命名空間,確保文件沒有被鎖定,卸載 package,.... 似乎沒有什么不同。

如果我制作一個新的 package 一切正常。 我意識到這遠不是一個最小的工作示例,但我不確定從哪里開始尋找。 任何建議,將不勝感激。 (我還沒有探索過的一件事是事物的順序是否記錄在案。)

這看起來像是 R 中的錯誤。 如果刪除matrix_list.R中的setClass之外的所有代碼,您仍然會收到錯誤消息。 如果您刪除matrix_list.R文件而沒有其他內容,則不會。

如果您使用tools::checkDocStyle(dir = "iGraphMatch") devtools發生這種情況,您根本不需要涉及開發工具。

我得出的結論是 tools::checkDocStyle function 和 S4 methods::setClass之間存在一些不兼容。 我不知道是否有解決方法。

編輯添加:這個錯誤有一個相當簡單的解決方法。 而不是使用代碼

matrix_list <- setClass("matrix_list", contains = "list")

matrix_list.R文件中,使用這個幾乎等效的代碼:

setClass("matrix_list", contains = "list")

matrix_list <- function(...)
  new("matrix_list", ...)

這避免了觸發tools::checkDocStyle中的錯誤。 它並不完全相同,因為原版在生成器 function 上添加了一些額外的屬性,但它可能應該足夠接近。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM