pandoc文档转换失败,错误127

时间:2016-01-08 22:16:12

标签: r amazon-ec2 r-markdown pandoc shiny-server

我不确定如何制作一个可重现的例子,但我很想知道是否有其他人遇到过这个问题。我在运行Ubuntu的EC2实例上通过闪亮的服务器托管了一个R Markdown文件。一切都运行良好几天,现在突然我尝试在浏览器中查看文档时出现以下错误:

pandoc document conversion failed with error 127

我没有转换为pdf,没有推动任何更改,并且几小时前它正在运行。我在网上找不到关于这个错误代码的任何内容,所以我不知道如何调试这个问题。有人曾经发生过这种事吗?

7 个答案:

答案 0 :(得分:2)

我今天遇到了类似的问题(见下面的.log文件):

Warning in system(command) : system call failed: Cannot allocate memory
Warning: Error in : pandoc document conversion failed with error 127
Stack trace (innermost first):
    105: pandoc_convert
    104: convert
    103: render
    102: discover_rmd_resources
    101: find_external_resources
    100: copy_render_intermediates
     99: output_format$intermediates_generator
     98: <Anonymous>
     97: do.call
     96: contextFunc
     95: .getReactiveEnvironment()$runWith
     94: shiny::maskReactiveContext
     93: <reactive>
     82: doc
     81: shiny::renderUI
     80: func
     79: origRenderFunc
     78: output$__reactivedoc__
      3: <Anonymous>
      2: do.call
      1: rmarkdown::run

我也在EC2实例上通过Ubuntu运行Shiny Server,特别是t2.micro。我在这里按照最高投票的答案解决了这个问题:How do you add swap to an EC2 instance?

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1

添加到/etc/fstab

/var/swap.1   swap    swap    defaults        0   0

简而言之,您可以在EBS上创建交换(内存)空间(因为t2.micro实例没有临时存储空间)并且此应该可以缓解您的内存问题(无需升级到更大的EC2实例。)

答案 1 :(得分:1)

使用安装了Ubuntu 16.04 LTS并运行闪亮应用程序的aws EC2实例时,我遇到了同样的错误。

我的修复:我在app.R文件的ui和服务器功能之外有一些代码。我将所有外部代码移动到服务器功能中,不再出现错误。

令我感到困惑的是,即使某些代码超出了这两个功能,应用程序仍然可以在大部分时间内工作!

您可以尝试的另一件事:某些来源声明由于内存不足而发生此错误。为了在aws实例上提供有限的内存情况,您应该提供系统可用于释放内存的交换空间。默认情况下,aws EC2实例上的Ubuntu具有零交换空间!您可以使用这些说明,谷歌也显示了很多:http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/

答案 2 :(得分:1)

当分配给R会话的RAM完全用完时,会发生这种情况。

您的代码中可能存在内存泄漏。

最简单的解决方法是重启会话。

答案 3 :(得分:0)

如果没有示例,很难确切地知道你在问什么,但我在尝试&#34;编织到html&#34;时遇到了同样的错误。来自RStudio的EC2实例。

这对我有用:

library("rmarkdown")
render("filename.Rmd", "html_document")

答案 4 :(得分:0)

当我尝试用RStudio从RMarkdown文件生成pdf_document时,遇到了类似的错误。据我所知:错误127表示“未找到文件”。文件不存在或路径不正确。

就我而言,我获得了其他信息,未找到ghostscript。我最近用Homebrew安装了新版本的MacTex。但是

  

自制软件确实与MacTex安装的ghostscript发生冲突   https://github.com/Homebrew/homebrew-core/issues/11368

我的解决方案是按照以下建议创建到ghostscript的符号链接: Ghostscript not writable

sudo chown -R `whoami` /usr/local/share/ghostscript
brew link --overwrite ghostscript

答案 5 :(得分:0)

推荐的解决方案如下:  1.检查 R 的安装位置(假设它是C驱动器)  2.建议C驱动器中至少有10 GB的空间可用  3.快乐编码

答案 6 :(得分:0)

使用knitr :: kable()将小节转换为表格时,出现此错误

错误:pandoc文档转换失败,错误码为127 6。 stop(“ pandoc文档转换失败,错误”,结果,调用。= FALSE) 5, rmarkdown :: pandoc_convert(输入= rmarkdown :: pandoc_path_arg(mdfile),到=“ html”,输出= rmarkdown :: pandoc_path_arg(htmlfile)) 4。 print.knit_asis(knitr :: asis_output(x)) 3。 打印(knitr :: asis_output(x)) 2。 print.knitr_kable(x) 1。 (函数(x,...)UseMethod(“ print”))(x)

我试图:

a)重新启动会话以刷新内存 b)安装最新的pandocs版本

但是它仍然不起作用...

非常感谢您。