R Markdown:openBinaryFile:不存在(没有这样的文件或目录)

时间:2018-01-09 03:51:38

标签: r shiny r-markdown pandoc

我开发了一个闪亮的应用程序,允许用户通过R Markdown下载HTML报告。我正在尝试将自定义CSS和图像包含到我的rmarkdown文件中。但是,我不断收到此错误消息:

pandoc: Could not fetch (either css or image file)
openBinaryFile: does not exist (No such file or directory)

当我在R Studio上编织.rmd文件时,它能够引用我想要的图像文件或css。但是,当我运行Shiny应用程序并下载html文件时,我收到上述错误消息。我甚至试图将图像和css文件放在与.rmd文件相同的工作目录中,但无济于事......

output:
  html_document:
   css: pandoc.css

(same error message as above)

一直试图为此找到一个解决方案但似乎无法帮助......

8 个答案:

答案 0 :(得分:3)

我有类似的问题。我没有使用完整的文件路径。我正在使用〜/ path / to / file。我将其更改为完整路径(即删除了〜/),并且可以正常工作。

答案 1 :(得分:2)

我也遇到了这个问题,但是对我来说,原因是RStudio项目位于共享驱动器上,并且已经通过网络位置将其打开。当我关闭项目,并通过映射的网络驱动器将其打开时,该问题已解决。 (如果您运行getwd()时您的位置以\\开头,则可能是您正在发生的情况。)

答案 2 :(得分:1)

我与RStudio和pandoc错误(openBinaryFile错误)有关的问题是由于创建和加载项目的文件路径所致。

Project File Path

创建项目时,我使用通用路径创建了该路径,这是上图中的第二个选项。但是,当我将其更改为映射的驱动器号时,上面的选项却消失了,我的pandoc错误消失了。

我正在运行RStudio 1.2.1335和R版本3.4.4

答案 3 :(得分:1)

我一直遇到类似的问题,在带有网络文件存储的Windows计算机上使用RStudio,rmarkdown和pandoc。我听了各种建议,将驱动器映射到一个字母,但仍然没有帮助。

最终,我发现libPaths中的路径之一包含网络位置/通用路径。我将该libpath更新为映射的字母驱动器,并且一切似乎都进行得很好!希望这可能对某人有所帮助。

答案 4 :(得分:0)

我认为我有同样的问题。我最初尝试过Changing the Default Directory,但是每次我去编织RMarkdown文件时,都会出现相同的错误集,表明该过程仍在尝试访问Network H驱动器而不是本地C驱动器上的文件,特别是它正在网络驱动器上的rmarkdown库文件中查找。我以为我遵循了上面的建议,但是在那之后不起作用了,我尝试删除网络驱动器中的rmarkdown文件夹

例如:\\fwnew12\Home\My Documents\R\win-library\3.6\rmarkdown

这似乎迫使R仅使用我的本地C驱动器(C:/Program Files/R/R-3.6.3/library)并最终成功编织了PDF。也许这不是推荐的方法,但是我只需要一些可行的方法。

答案 5 :(得分:0)

我最近在Windows工作计算机上遇到了这个问题,我只是在.libPaths()文件中设置了Rprofile.site。这与以前的答案一致,但更详细。

步骤1

检查您当前的路径:

> .libPaths()
[1] "\\\\my_work_server.se/some_subdir$/username/Dokument/R/win-library/3.6"
[2] "C:/R/R-3.6.3/library"

第2步

查找\\\,在本例中为路径"\\\\my_work_server.se/some_subdir$/username/Dokument/R/win-library/3.6"。该路径很可能是某些已经挂载的主目录,在我的情况下是H: = "\\\\my_work_server.se/some_subdir$/username/。如果您没有挂载的目录,则可能要先修复此目录或将库路径更改为另一个目录。

步骤3

因此,如果您在C:/R/R-3.6.3/下安装了R,则可以编辑文件C:/R/R-3.6.3/etc/Rprofile.site并添加:

.First <- function(){
  .libPaths(c("H:/Dokument/R/win-library/3.6", "C:/R/R-3.6.3/library"))
}

请记住将H:更改为安装网络目录的位置。

步骤4

就这样,重新启动R,您应该就能编织文档。

答案 6 :(得分:0)

我也收到类似的错误消息,但就我而言,问题是我在其中一个块标题中使用了class CsvEditor(Widget): def on_keyboard(self, window, key, scancode, codepoint, modifier): if modifier == ['ctrl'] and codepoint == '+': class CsvEditorKivy(App): def build(self): editor = CsvEditor() Window.bind(on_keyboard=editor.on_keyboard) self.title = 'CSV Editor' return editor 符号:

{% if inputs.parameters.resources.gpu == 1 %}
    nvidia.com/gpu: {{ inputs.parameters.resources.gpu }}
{% end %}

如果仅在Rstudio中运行笔记本就没有问题,但是显然使knitr / pandoc混淆了:编织时,我收到一条错误消息,如

#

从块标题中删除```{r show distribution of # of commits per month} 解决了这个问题。

答案 7 :(得分:0)

我在运行时遇到了同样的消息:

pandoc -s foo.html foo.md

我完全错过了应该出现的 -o 标志

pandoc -s -o foo.html foo.md

对于后者,一切都像魅力一样。