簡體   English   中英

pandoc 文檔轉換失敗,錯誤 127

[英]pandoc document conversion failed with error 127

我不確定如何制作一個可重現的例子,但我很想知道是否有其他人遇到過這個問題。 我在運行 Ubuntu 的 EC2 實例上通過 shiny 服務器托管了一個 R Markdown 文件。 幾天來一切正常,現在當我嘗試在瀏覽器中查看文檔時突然出現以下錯誤:

pandoc document conversion failed with error 127

我沒有轉換為 pdf,沒有進行任何更改,而且它在幾個小時前就開始工作了。 我在網上找不到關於此錯誤代碼的任何信息,因此我不知道如何調試此問題。 以前有人發生過這種情況嗎?

我今天遇到了類似的問題(請參閱下面的 .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 實例)。

在使用安裝了 Ubuntu 16.04 LTS 的 aws EC2 實例並運行閃亮的應用程序時,我遇到了同樣的錯誤。

我的解決方法:我在 app.R 文件的 ui 和服務器功能之外有一些代碼。 我將所有外部代碼移至服務器函數中,錯誤不再發生。

讓我感到困惑的是,即使某些代碼不在這兩個函數之外,該應用程序大部分時間仍然可以運行!

您可以嘗試的另一件事:一些消息來源指出此錯誤是由於內存不足而發生的。 為了幫助 aws 實例上的內存有限情況,您應該提供系統可用於釋放內存的交換空間。 默認情況下,AWS EC2 實例上的 Ubuntu 交換空間為零,您可以使用這些說明:谷歌也顯示了很多: http ://www.thegeekstuff.com/2010/08/how-to-add-swap-space/

當分配給您的 R 會話的 RAM 完全用完時,就會發生這種情況。

您的代碼中可能存在內存泄漏。

最簡單的修復是重新啟動會話。

沒有例子很難確定你在問什么,但我在嘗試從 RStudio 的 EC2 實例“編織到 html”時遇到了同樣的錯誤。

這對我有用:

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

當我嘗試使用 RStudio 從 RMarkdown 文件生成 pdf_document 時,我遇到了類似的錯誤。 據我所知:錯誤 127 表示“找不到文件”。 該文件不存在或路徑不正確。

在我的例子中,我得到了額外的信息,沒有找到ghostscript 我最近用 Homebrew 安裝了新版本的 MacTex。

Homebrew 確實……與 MacTex 安裝的 ghostscript 沖突https://github.com/Homebrew/homebrew-core/issues/11368

我的解決方案是按照此處的建議創建到ghostscript的符號鏈接: Ghostscript 不可寫

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

推薦的解決方案如下: 1. 檢查R的安裝位置(假設它是 C 驅動器) 2. 在 C 驅動器中騰出一些空間,建議至少 10 GB 3. 快樂編碼

使用 knitr::kable() 將 tibble 轉換為表格時出現此錯誤

錯誤:pandoc 文檔轉換失敗,錯誤 127 6.stop("pandoc 文檔轉換失敗,錯誤", result, call. = FALSE) 5. rmarkdown::pandoc_convert(input = rmarkdown::pandoc_path_arg(mdfile), to = "html ", output = rmarkdown::pandoc_path_arg(htmlfile)) 4. print.knit_asis(knitr::asis_output(x)) 3. print(knitr::asis_output(x)) 2. print.knitr_kable(x) 1. (函數(x, ...) UseMethod("打印"))(x)

我試過:

a) 重新啟動會話以刷新內存 b) 安裝最新的 pandocs 版本

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

非常感謝你。

我知道這是一個老問題,但正如 vivek 提到的,重新啟動服務器對我有用:

sudo systemctl restart shiny-server

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM