web-dev-qa-db-fra.com

R Markdown: openBinaryFile: n'existe pas (aucun fichier ou répertoire de ce type)

J'ai développé une application brillante qui permet à l'utilisateur de télécharger un rapport HTML via R Markdown. J'essaie d'inclure des images et des CSS personnalisés dans mon fichier rmarkdown. Cependant, je reçois toujours ce message d'erreur:

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

Lorsque je tricote le fichier .rmd sur R Studio, il est capable de référencer le fichier image ou css que je veux. Cependant, lorsque j'exécute l'application Shiny et télécharge le fichier html, j'obtiens le message d'erreur ci-dessus. J'ai même essayé de mettre les images et les fichiers css dans le même répertoire de travail que le fichier .rmd, mais en vain ...

output:
  html_document:
   css: pandoc.css

(same error message as above)

Vous avez essayé de trouver une solution à cela, mais cela ne semble pas ... quelqu'un peut-il aider ici?

11
ZPeh

J'avais un problème similaire. Je n'utilisais pas le chemin d'accès complet au fichier. J'utilisais ~/path/to/file. Je l'ai changé pour le chemin complet (c'est-à-dire supprimé le ~ /) et cela a fonctionné.

5
Haloom

Je viens d'avoir ce problème également, mais pour moi, la raison était que le projet RStudio était sur un lecteur partagé, et je l'avais ouvert via l'emplacement réseau. Le problème a été résolu lorsque j'ai fermé le projet et l'ai rouvert via un lecteur réseau mappé. (Si lorsque vous exécutez getwd() votre emplacement commence par \\, c'est probablement ce qui vous arrive.)

5
AColeman

Le problème que j'ai eu avec RStudio et l'erreur pandoc (erreur openBinaryFile) était dû au chemin d'accès au fichier dans lequel le projet a été créé et chargé.

Chemin du fichier de projet

Lorsque j'ai créé le projet, je l'ai créé en utilisant le chemin universel, qui est la 2e option dans l'image ci-dessus. Cependant, lorsque j'ai changé cela en lettre de lecteur mappé, l'option au-dessus, mon erreur pandoc avait disparu.

J'utilise RStudio 1.2.1335 et R version 3.4.4

1
Zeno Lee

J'ai eu un problème similaire, avec RStudio, rmarkdown et pandoc sur une machine Windows avec réseau de fichiers réseau. J'ai suivi divers conseils, mappé le lecteur à une lettre et cela n'a toujours pas aidé.

Finalement, j'ai découvert que l'un des chemins dans mes libPaths contenait l'emplacement réseau/chemin universel. J'ai mis à jour ce chemin d'accès au lecteur de lettres mappé et tout semble bien se passer!

1
deef123

Je crois que j'avais le même problème. J'avais d'abord essayé Modification du répertoire par défaut mais chaque fois que j'allais tricoter le fichier RMarkdown, j'obtenais le même ensemble d'erreurs indiquant que le processus essayait toujours d'accéder aux fichiers sur le lecteur H de mon réseau plutôt que mon lecteur C local, en particulier, il cherchait dans le fichier de bibliothèque rmarkdown sur le lecteur réseau. Je pensais que je suivais les conseils ci-dessus, mais après cela n'a pas fonctionné, j'ai essayé de supprimer le dossier rmarkdown dans le lecteur réseau

par exemple: \\fwnew12\Home\My Documents\R\win-library\3.6\rmarkdown.

Cela a semblé forcer R à n'utiliser que mon lecteur C local (C:/Program Files/R/R-3.6.3/library) et enfin tricoter un PDF avec succès. Ce n'est peut-être pas une approche recommandée, mais j'ai juste besoin de quelque chose qui fonctionne.

0
Kodiakflds

J'ai récemment rencontré le problème sur mon ordinateur de travail Windows où j'ai simplement défini la .libPaths() dans la Rprofile.site fichier. Ceci en ligne avec les réponses précédentes mais un peu plus détaillé.

Étape 1

Vérifiez vos chemins actuels:

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

Étape 2

Cherchez le \\\, dans ce cas c'est le chemin "\\\\my_work_server.se/some_subdir$/username/Dokument/R/win-library/3.6". Ce chemin est probablement un répertoire personnel déjà monté, dans mon cas, c'est H: = "\\\\my_work_server.se/some_subdir$/username/. Si vous n'avez pas de répertoire monté, vous voudrez peut-être le corriger en premier ou changer le chemin de la bibliothèque en un autre.

Étape 3

Donc, si vous avez installé R sous C:/R/R-3.6.3/ vous modifiez le fichier C:/R/R-3.6.3/etc/Rprofile.site et ajouter:

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

N'oubliez pas de changer H: à l'endroit où vous avez votre répertoire réseau monté.

Étape 4

Voilà, redémarrez R et vous devriez pouvoir tricoter votre document.

0
Max Gordon