【问题标题】:devtools::load_all() "cannot find function x" when function x is part of a loaded package当函数 x 是已加载包的一部分时,devtools::load_all() “找不到函数 x”
【发布时间】:2013-10-15 16:55:26
【问题描述】:

我最近收到此错误消息:

> load_all(file.path(.db,"R-projects","taRifx.geo"))
Loading taRifx.geo
Error in eval(expr, envir, enclos) : could not find function "Polygons"

该文件夹是我的本地副本:https://github.com/gsk3/taRifx.geo

Polygonssp 的一部分,sp 已加载:

> Polygons
function (srl, ID) 
{
    stopifnot(is.list(srl))
    stopifnot(length(srl) > 0)
    if (any(sapply(srl, function(x) !is(x, "Polygon")))) 
        stop("srl not a list of Polygon objects")
    if (missing(ID)) 
        stop("Single ID required")
    if (length(ID) != 1) 
        stop("Single ID required")
    ID <- as.character(ID)
    stopifnot(nchar(ID) > 0)
    res <- .Call(Polygons_c, srl, ID)
    res
}
<environment: namespace:sp>

sp 也在包的Depends 部分DESCRIPTION

是否有一个奇怪的范围界定事情阻止load_all 在加载包时看到Polygons?如果是这样,我该如何诊断/修复?

【问题讨论】:

  • 试试load_all("taRifx.geo", reset=FALSE)。不知道为什么它会起作用,所以我不能完全保证它,但它似乎确实有效。
  • @JoshO'Brien 这行得通!
  • 您能否删除问题或发布解决方案?
  • 感谢您更新此 Karl。它不能始终如一地工作。我现在将发布我的 kludge(基本上运行两次)。

标签: r devtools


【解决方案1】:

看来你第一次加载它时,它失败了(但加载了依赖项),所以等待一秒钟再试一次对我来说一直有效:

try( load_all("taRifx.geo",reset=FALSE) )
Sys.sleep(1)
try( load_all("taRifx.geo",reset=FALSE) )

不确定reset=FALSE 是否完全必要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2019-10-23
    • 2012-02-10
    • 2019-08-18
    相关资源
    最近更新 更多