pandoc文档转换失败,错误127

问题描述 投票:8回答:5

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

pandoc document conversion failed with error 127

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

r amazon-ec2 r-markdown pandoc shiny-server
5个回答
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

我也是通过Ubuntu在EC2实例上运行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
投票

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

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

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

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


1
投票

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

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

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


0
投票

很难知道你在没有例子的情况下要问什么,但是我从RStudio的EC2实例中尝试“编织到html”时遇到了同样的错误。

这对我有用:

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

0
投票

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

在我的情况下,我得到了额外的信息,没有找到ghostscript。我最近用Homebrew安装了新版MacTex。但

Homebrew确实......与MacTex https://github.com/Homebrew/homebrew-core/issues/11368安装的ghostscript冲突

我的解决方案是创建ghostscript的符号链接,如下所示:Ghostscript not writable

sudo chown -R `whoami` /usr/local/share/ghostscript
brew link --overwrite ghostscript
© www.soinside.com 2019 - 2024. All rights reserved.