![](/img/trans.png)
[英]Including caret in another package gives error during devtools::check() - “there is no package called 'lattice'”
[英]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.