![](/img/trans.png)
[英]R package fails devtools::check, because "could not find function" even though the function is imported in NAMESPACE
[英]What is `.__DEVTOOLS__.` environment in R package namespace?
在閱讀 R 包的源代碼時,我注意到它們有時會引用.__DEVTOOLS__.
環境。 但是我在野外的任何package命名空間都沒有遇到過這個環境,也無法成功找到任何相關信息。
我確實了解其他環境。 我的第一個猜測是這與 {devtools} package 有關,但即使是 package 在其命名空間中也沒有此環境。
get_env_from_ns <- function(x) {
ns <- .getNamespace(x)
c(
rlang::env_has(ns, ".__NAMESPACE__."),
rlang::env_has(ns, ".__S3MethodsTable__."),
rlang::env_has(ns, ".__DEVTOOLS__.")
)
}
library(devtools)
#> Loading required package: usethis
get_env_from_ns("devtools")
#> .__NAMESPACE__. .__S3MethodsTable__. .__DEVTOOLS__.
#> TRUE TRUE FALSE
由reprex package (v2.0.1) 創建於 2022-06-15
所以我有兩個問題:
.__DEVTOOLS__.
是由devtools
package 創建的環境的名稱。如果您在 `devtools package NEWS中搜索它,您會發現它說
使用 load_all 加載的包現在將 devtools 元數據存儲在其名稱空間環境中的一個名為
.__DEVTOOLS__.
這可以通過 dev_meta function 訪問。(Winston Chang。修復 #128)
它出現在metatdata.R 文件中。 package 似乎不再使用此環境來跟蹤元數據,因此 function 似乎是為與 package 的舊版本一起使用而編寫的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.