• R语言
  • rmarkdown 无法编织文件

问题描述

更新 mac 系统后, rmarkdown 无法"调用" pandoc. 比如运行 rmarkdown::pandoc_version()后错误信息如下:

sh: /usr/local/bin/pandoc: Bad CPU type in executable
Error in strsplit(info, "\n")[[1]] : subscript out of bounds
In addition: Warning message:
In system(paste(shQuote(path), "--version"), intern = TRUE) :
  running command ''/usr/local/bin/pandoc' --version' had status 126

系统环境

我的 RStudio 版本为 1.2.5033. 其他信息如下:

> devtools::session_info()
─ Session info ──────────────────────────────────────────
 setting  value                       
 version  R version 3.6.2 (2019-12-12)
 os       macOS Catalina 10.15.3      
 system   x86_64, darwin15.6.0        
 ui       RStudio                     
 language (EN)                        
 collate  en_US.UTF-8                 
 ctype    en_US.UTF-8                 
 tz       Asia/Shanghai               
 date     2020-02-12                  

─ Packages ──────────────────────────────────────────────
 package     * version date       lib source        
 assertthat    0.2.1   2019-03-21 [1] CRAN (R 3.6.0)
 backports     1.1.5   2019-10-02 [1] CRAN (R 3.6.0)
 bookdown      0.17    2020-01-11 [1] CRAN (R 3.6.0)
 callr         3.4.1   2020-01-24 [1] CRAN (R 3.6.0)
 cli           2.0.1   2020-01-08 [1] CRAN (R 3.6.0)
 crayon        1.3.4   2017-09-16 [1] CRAN (R 3.6.0)
 desc          1.2.0   2018-05-01 [1] CRAN (R 3.6.0)
 devtools      2.2.1   2019-09-24 [1] CRAN (R 3.6.0)
 digest        0.6.23  2019-11-23 [1] CRAN (R 3.6.0)
 ellipsis      0.3.0   2019-09-20 [1] CRAN (R 3.6.0)
 evaluate      0.14    2019-05-28 [1] CRAN (R 3.6.0)
 fansi         0.4.1   2020-01-08 [1] CRAN (R 3.6.0)
 fs            1.3.1   2019-05-06 [1] CRAN (R 3.6.0)
 glue          1.3.1   2019-03-12 [1] CRAN (R 3.6.0)
 htmltools     0.4.0   2019-10-04 [1] CRAN (R 3.6.0)
 knitr         1.28    2020-02-06 [1] CRAN (R 3.6.0)
 magrittr      1.5     2014-11-22 [1] CRAN (R 3.6.0)
 memoise       1.1.0   2017-04-21 [1] CRAN (R 3.6.0)
 pkgbuild      1.0.6   2019-10-09 [1] CRAN (R 3.6.0)
 pkgload       1.0.2   2018-10-29 [1] CRAN (R 3.6.0)
 prettyunits   1.1.1   2020-01-24 [1] CRAN (R 3.6.0)
 processx      3.4.1   2019-07-18 [1] CRAN (R 3.6.0)
 ps            1.3.0   2018-12-21 [1] CRAN (R 3.6.0)
 R6            2.4.1   2019-11-12 [1] CRAN (R 3.6.0)
 Rcpp          1.0.3   2019-11-08 [1] CRAN (R 3.6.0)
 remotes       2.1.0   2019-06-24 [1] CRAN (R 3.6.0)
 rlang         0.4.4   2020-01-28 [1] CRAN (R 3.6.0)
 rmarkdown     2.1     2020-01-20 [1] CRAN (R 3.6.0)
 rprojroot     1.3-2   2018-01-03 [1] CRAN (R 3.6.0)
 rstudioapi    0.11    2020-02-07 [1] CRAN (R 3.6.0)
 sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.6.0)
 testthat      2.3.1   2019-12-01 [1] CRAN (R 3.6.0)
 usethis       1.5.1   2019-07-04 [1] CRAN (R 3.6.0)
 withr         2.1.2   2018-03-15 [1] CRAN (R 3.6.0)
 xfun          0.12    2020-01-13 [1] CRAN (R 3.6.0)
 yaml          2.2.1   2020-02-01 [1] CRAN (R 3.6.0)

[1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library

失败的尝试

Stackoverflow 上有一个和我同样的问题, 但还没有回答. 我用错误信息里的 "Bad CPU type in executable" 进行搜索, 找到了一些可能相关的解答(如 12). 但我看不懂... 而且我应该没有安装过 homwbrew.

    albert-R 如果你用 RStudio 的话,除非你有特定的 Pandoc 需求,否则我不建议你自行额外安装 Pandoc,因为 RStudio 已经自带 Pandoc。

    如果你不用 RStudio,那么我建议你升级 Pandoc,因为低版本的 Pandoc 在高版本的 macOS 上不能运行。

    从你的 Pandoc 路径来看,你很可能是通过 Homebrew 安装了 Pandoc。根据以上我说的条件判断,要么你 brew remove pandoc pandoc-citeproc 卸载 Pandoc,要么 brew update && brew upgrade 升级 Pandoc。如果你确定没有安装 Homebrew(brew 命令不存在),那么参考 Pandoc 网站看如何卸载或升级。

      谢谢 我按 Pandoc 网站方法卸载旧版本后问题解决了!