【问题标题】:pandoc document conversion failed with error 127pandoc 文档转换失败,错误 127
【发布时间】:2016-04-13 17:24:21
【问题描述】:

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

pandoc document conversion failed with error 127

我没有转换为 pdf,没有推送任何更改,并且它在几个小时前就可以工作了。我没有在网上找到很多关于这个错误代码的东西,所以我不知道如何调试这个问题。以前有人遇到过这种情况吗?

【问题讨论】:

  • 这里有类似的错误,在私有 ubuntu 服务器上使用 knit2pdf。重启服务器有帮助。
  • 是的,当多人同时访问一个闪亮的应用程序时,我经常收到这个错误。我认为这与内存有关。
  • 在自托管的 Ubuntu VM 上获取此信息。绝对是我的内存,因为它还说:“系统调用失败:无法分配内存”。 “错误 127”是不透明且无用的,甚至不确定它来自哪里。好吧,我重新启动了 RStudio,它再次工作,所以我假设内存泄漏(是的,第一次 free 实际上显示正在使用的交换空间)

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


【解决方案1】:

如果没有示例,很难确定您要问什么,但我在尝试从 RStudio 的 EC2 实例“编织到 html”时遇到了同样的错误。

这对我有用:

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

【讨论】:

    【解决方案2】:

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

    我的解决方法:我的 app.R 文件的 ui 和服务器功能之外还有一些代码。我将所有外部代码移到服务器函数中,并且不再发生错误。

    让我感到困惑的是,即使某些代码在这两个函数之外,该应用程序仍然可以在大部分时间运行!

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

    【讨论】:

      【解决方案3】:

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

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

      最简单的修复方法是重新启动会话。

      【讨论】:

        【解决方案4】:

        我今天遇到了类似的问题(请参阅下面的 .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
        

        我也在 E​​C2 实例上通过 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 实例)。

        【讨论】:

          【解决方案5】:

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

          就我而言,我得到了额外的信息,即找不到 ghostscript。我最近用 Homebrew 安装了新版本的 MacTex。但是

          Homebrew 确实……与 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
          

          【讨论】:

            【解决方案6】:

            推荐的解决方案如下: 1.检查R的安装位置(假设是C盘) 2. 在 C 盘中腾出一些空间,建议至少 10 GB 3.快乐编码

            【讨论】:

              【解决方案7】:

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

              错误:pandoc 文档转换失败,错误 127 6. stop("pandoc 文档转换失败并出现错误", result, call. = FALSE) 5. rmarkdown::pandoc_convert(输入 = rmarkdown::pandoc_path_arg(mdfile), to = "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. (function (x, ...) UseMethod("print"))(x)

              我已经尝试过:

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

              但是还是不行……

              非常感谢。

              【讨论】:

              • 您好 Delhoyo,欢迎来到 SO,如果您发布一个新问题,您将会有更好的运气,如果您想成为一名优秀的 SO 用户并收到您应该做的回复并表现出一些努力meta.stackoverflow.com/questions/261592/… 并始终格式化您的代码,使其看起来美观且易于阅读
              【解决方案8】:

              我知道这是一个老问题,但正如 vivek 所说,重新启动服务器对我有用:

              sudo systemctl restart shiny-server
              

              【讨论】:

                猜你喜欢
                • 2017-07-14
                • 1970-01-01
                • 2018-02-23
                • 2017-05-08
                • 2019-10-14
                • 1970-01-01
                • 2015-01-14
                • 1970-01-01
                • 2015-09-02
                相关资源
                最近更新 更多