我不确定如何制作一个可重现的例子,但我很想知道是否有其他人遇到过这个问题。我在运行Ubuntu的EC2实例上通过闪亮的服务器托管了一个R Markdown文件。一切都运行良好几天,现在突然我尝试在浏览器中查看文档时出现以下错误:
pandoc document conversion failed with error 127
我没有转换为pdf,没有推动任何更改,并且几小时前它正在运行。我在网上找不到关于这个错误代码的任何内容,所以我不知道如何调试这个问题。有人曾经发生过这种事吗?
答案 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版本
但是它仍然不起作用...
非常感谢您。