【问题标题】:Error in parse(outFile) : unexpected end of input - bug in package install, and how to fix解析错误(outFile):输入意外结束 - 包安装中的错误以及如何修复
【发布时间】:2020-10-03 11:39:18
【问题描述】:

在尝试从 GitHub 安装我自己的软件包时,我遇到了一个其他人已通知我的问题,我曾尝试修复但未成功。我的结论是,软件包安装程序错误地告知用户问题的根源,导致在工作脚本中搜索故障毫无结果。

install_github("SimonDedman/gbm.auto", force = TRUE)

(截图,以便正确排列)

【问题讨论】:

    标签: r parsing compiler-errors package installation


    【解决方案1】:

    从逻辑上可以得出结论,问题出在...控制台所说的位置 - 该文件的结尾 gbm.valuemap_oldbkup.R。但我已经搜索了那个文件。没关系。恢复到历史版本(因此是 oldbkup 文件名),这也很好。但是:而不是 gbm.valuemap.R 中的错​​误,现在它在 gbm.valuemap_oldbkup.R 中。区别? Oldbkup 现在是列表中的最后一个文件。所以也许问题不在于这个特定的文件有一个未闭合的括号......而是在以前的任何文件中的某个地方都有一个未闭合的括号。扩展Duncan Murdoch's approach

    setwd("gbm.auto/R/") # goto package root
    allfiles <- list.files() # list files
    for (i in allfiles) {
      print(paste0(which(allfiles %in% i), "/", length(allfiles), " : ", i)) # counter
      text <- readLines(i)
      src <- srcfile(i)
      parse(text = text, srcfile = src)
    }
    

    我发现问题实际上出在 gbm.auto.R 中。我搜索该文件,找到问题,修复它,重试安装,工作正常。我会找出在哪里提交这个错误(install_packages、R、RStudio、其他)并这样做。与此同时,希望这对其他人有所帮助。

    【讨论】:

    • 这是因为您可以在一个文件中打开一个大括号,然后在另一个文件中关闭它。因此,当您到达最后一个文件的末尾而没有找到匹配项时,会出现缺少的右大括号。要求每个文件在语法上完整会更有意义,但这不是 R 所做的。
    • 我在遥控器 (install_packages) 中打开了一个错误,提出了每个文件的方法。在我看来,真正的问题是错误消息帮助程序以错误的方式向用户发送了错误消息,这比根本不提示原因更有用。
    • 我认为这是一个 R 问题而不是 remotes 问题,但他们可能会进行第二次解析并提供更好的信息。
    • 有趣,感谢英特尔。如果他们认为这是最好的途径,我会看看他们是否回应我的问题并将其推向链条。
    猜你喜欢
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    相关资源
    最近更新 更多