R Блестящая упаковка: ОШИБКА: невозможно сопоставить и проанализировать файлы R для пакета ‘xx’

#r #shiny #r-package

#r #блестящий #r-package

Вопрос:

Я пишу блестящее приложение и упаковал все приложение в пакет. Давайте назовем это приложение / пакет fruit

Каждый раз, когда я вносил изменения в приложение, я делал следующее:

 library(devtools)
install()
library(fruit)
run_fruit_app()
  

Я подозреваю, что я что-то перепутал при редактировании, теперь после запуска install()
появляются следующие сообщения об ошибках:

 Running /Library/Frameworks/R.framework/Resources/bin/R CMD INSTALL 
  /var/folders/t6/v39yjp39xxxxxx/T//Rtmpxxx/fruit_0.1.0.tar.gz --install-tests 
* installing to library ‘/Library/Frameworks/R.framework/Versions/4.0/Resources/library’
* installing *source* package ‘fruit’ ...
** using staged installation
** R
Error in parse(outFile) : 
  /private/var/folders/t6/v39yjp39xxxxxx/T/Rtmpxxx/R.INSTALL11a89xxx/fruit/R/testing.R:1:1: unexpected symbol
1: library
    ^
ERROR: unable to collate and parse R files for package ‘fruit’
* removing ‘/Library/Frameworks/R.framework/Versions/4.0/Resources/library/fruit’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/4.0/Resources/library/fruit’
Error in (function (command = NULL, args = character(), error_on_status = TRUE,  : 
  System command 'R' failed, exit status: 1, stdout amp; stderr were printed
  
 > .Last.error.trace 

 Stack trace:

 1. devtools:::install()
 2. pkgbuild::with_build_tools(required = FALSE, callr::rcmd("INSTALL",  ...
 3. callr::rcmd("INSTALL", c(install_path, opts), echo = !quiet,  ...
 4. callr:::run_r(options)
 5. base:::with(options, with_envvar(env, do.call(processx::run,  ...
 6. base:::with.default(options, with_envvar(env, do.call(processx::run,  ...
 7. base:::eval(substitute(expr), data, enclos = parent.frame())
 8. base:::eval(substitute(expr), data, enclos = parent.frame())
 9. callr:::with_envvar(env, do.call(processx::run, c(list(bin, args = real_cmdargs,  ...
 10. base:::force(code)
 11. base:::do.call(processx::run, c(list(bin, args = real_cmdargs,  ...
 12. (function (command = NULL, args = character(), error_on_status = TRUE,  ...
 13. throw(new_process_error(res, call = sys.call(), echo = echo,  ...

 x System command 'R' failed, exit status: 1, stdout amp; stderr were printed 
  

Что может быть потенциальным источником ошибок? Я убедился, что не забыл закрыть скобку, использовал неправильную скобку или установил что-то в неправильном рабочем каталоге.

Любая информация очень ценится!

Комментарии:

1. Я рекомендую вам делать library(devtools); check(); load_all(); run_fruit_app() это вместо установки каждый раз. Кроме того, check() сообщит вам, есть ли проблемы с вашим кодом (я предполагаю, что у вас есть library() вызов внутри кода вашего пакета)

2. @TomasCapretto Спасибо! Это действительно решило мою проблему!

3. Отлично, могу ли я опубликовать это как ответ?

4. @TomasCapretto Да!

Ответ №1:

Как упоминалось в комментариях, я рекомендую вам сделать :

 library(devtools)
check()
load_all()
run_fruit_app()
  

вместо установки пакета каждый раз, когда вам нужно что-то проверить.
Кроме того, check() сообщит вам, есть ли проблемы с вашим кодом. Я предполагаю, что у вас есть вызов library() где-то в вашем коде.

Наконец, у меня также есть упакованное блестящее приложение. На всякий случай, если вам нужно что-то проверить, это ссылка на репозиторий https://github.com/tomicapretto/sdeshiny

Удачи!