【问题标题】:Error in loadnamespace when knitting R_markdown to PDF将 R_markdown 编织为 PDF 时加载命名空间出错
【发布时间】:2020-11-05 16:44:25
【问题描述】:

这是我第一次使用 R_Markdown

我创建了一个新的 R_Markdown 并试图将它编织成 PDF。当我这样做时,我收到以下错误


processing file: R_markdown.Rmd
  |..........                                                            |  14%
  ordinary text without R code

  |....................                                                  |  29%
label: setup (with options) 
List of 1
 $ include: logi FALSE

  |..............................                                        |  43%
  ordinary text without R code

  |........................................                              |  57%
label: cars
  |..................................................                    |  71%
  ordinary text without R code

  |............................................................          |  86%
label: pressure (with options) 
List of 1
 $ echo: logi FALSE

  |......................................................................| 100%
  ordinary text without R code


output file: R_markdown.knit.md

"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS R_markdown.utf8.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output R_markdown.tex --lua-filter "C:\Users\faiel\Documents\R\win-library\4.0\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\faiel\Documents\R\win-library\4.0\rmarkdown\rmarkdown\lua\latex-div.lua" --self-contained --highlight-style tango --pdf-engine pdflatex --variable graphics --variable "geometry:margin=1in" 
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : 
  namespace 'xfun' 0.17 is already loaded, but >= 0.19 is required
Calls: <Anonymous> ... namespaceImportFrom -> asNamespace -> loadNamespace
Execution halted

我不明白为什么会这样。我尝试了以下

install.packages("rmarkdown")

update.packages(ask = FALSE, checkBuilt = TRUE)
tinytex::tlmgr_update()

但没有任何运气

【问题讨论】:

    标签: r r-markdown knitr


    【解决方案1】:

    loadNamespace 中的错误(j 'xfun' 0.17 已加载,但 >= 0.19 是必需的

    如果您发现上述错误,您可以使用以下解决方案来消除错误。 同样的方法可以用于任何包。(可以代替 xfun 任何包名称)。

    解决方案:
    在 RStudio 中,导航到 -> 工具 -> 检查包更新,在这里您可以选择包并更新。 如果这不起作用,请更新 R 版本并尝试更新软件包。

    通过执行上述方法,包将更新到较新的版本。

    【讨论】:

    • Ranjan,欢迎来到 SO!很高兴您提供了一种使用 RStudio 的 GUI 更新包的方法。我认为您的答案可以使用更多深度(例如,请注意@user2554330 的答案如何确定有问题的包),以便其他找到此答案的人可以清楚地看到您提出的解决方案解决了什么问题以及如何解决。
    【解决方案2】:

    CRAN 上的 xfun 版本目前为 0.18。显然您正在使用其他一些需要xfun 0.19 版的软件包。所以你需要停止使用那个非 CRAN 包,或者从 Github 或其他一些未经测试的源更新xfun

    您可以运行remotes::update_packages() 来搜索很多地方以获取更新。我不建议依赖非 CRAN 软件包:它们明天可能会以不兼容的方式发生变化。

    要找出remotes 包(或devtools)安装了哪些非CRAN 包,您可以运行

    subset(as.data.frame(installed.packages(fields="RemoteType")), !is.na(RemoteType))
    

    但是,我认为这不会检测通过下载 .tar.gz.zip 文件安装的软件包。我不知道如何检测这些。

    【讨论】:

    • 谢谢。我认为我从未安装过非 CRAN 软件包,检查并使用 CRAN 的 xfun 的最佳方法是什么?
    • @FrAiello:我已经编辑了我的答案以给出部分回复。
    • 我在使用 R markdown 时遇到了类似的问题。我通过简单地更新 Rstudio 中的包得到了解决方案。
    【解决方案3】:

    我在 RStudio 1.4.1103.0 和 R 4.0.4(Win10、20H2)下遇到了同样的问题。更新安装的软件包后出现问题。我不能确切地说是哪些,因为我更新了所有的包。

    Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : namespace 'xfun' 0.17 is already loaded, but >= 0.19 is required
    

    Xfun 无法更新。 我卸载了 rstudio,然后分别安装了最新版本的 RStudio (11.04.) 和 R (4.0.5.)。之后我可以再次更新 xfun (0.22),问题就解决了

    总而言之相当耗时,我不太明白这个问题。也许有更好的方法?

    【讨论】:

      猜你喜欢
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 2017-07-07
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多