Shiny Server не может загрузить установленный пакет

У меня проблема с развертыванием моего приложения на Shiny Server.

Приложение загружается (или, по крайней мере, загружается ui.R), поэтому я могу видеть пользовательский интерфейс. Но на этом выполнение останавливается, и на мою JS-консоль выгружается следующее:

Attaching package: ‘shinydashboard’

The following object is masked from ‘package:graphics’:

box

Loading required package: bitops Error in library(data.table) : there
  is no package called ‘data.table’

Последняя строка указывает, что проблема связана с пакетом data.table.

Я проверил свою установку Shiny Server, и data.table установлен правильно. Я могу загрузить пакет в свою консоль R на сервере как от обычного пользователя, так и от имени пользователя sudo.

Я даже не использую этот пакет напрямую, так что я предполагаю, что это какая-то зависимость.

Есть ли у вас какие-либо идеи?

Редактировать: Минимальный пример этой проблемы можно воспроизвести, используя пример урока 1 из блестящего учебника: http://shiny.rstudio.com/tutorial/lesson1/ и включая library(data.table)

Если вам нужен пакет data.table для объединения data.frames, я нашел обходной путь, используя функцию dplyr rbind_all вместо rbindlist из data.table (имейте в виду, что это значительно медленнее)


person Bachkippe    schedule 07.07.2015    source источник
comment
Попробуйте использовать параметр lib= для library() и указать полный путь к папке пакетов.   -  person zx8754    schedule 07.07.2015
comment
библиотека (data.table) недавно устарела для библиотеки (DT) - возможно, попробуйте загрузить последний из ваших пакетов в верхней части вашего скрипта. Также убедитесь, что каждая библиотека обновлена, в некоторых случаях мне приходилось использовать версии пакетов install_github.   -  person MarkeD    schedule 08.07.2015


Ответы (2)


Когда я недавно развернул shining на инстансе ec2, у меня возникла аналогичная проблема. Запустите library() без параметров и посмотрите на разные каталоги пакетов. Я полагаю, что каталог по умолчанию для пакетов, которые использует shining, с которым поставляется мой образ, — это «/usr/local/lib/R/site-library».

Когда я устанавливаю пакеты, я обязательно указываю путь для установки с помощью lib=, install.packages("data.table",lib="/usr/local/lib/R/site-library")

person lbollar    schedule 07.07.2015
comment
Я следовал вашим инструкциям и получил этот путь: /Library/Frameworks/R.framework/Versions/3.1/Resources/library. Я переустановил пакет в соответствии с инструкциями, но приложение не работает. - person Bachkippe; 07.07.2015
comment
Можете ли вы использовать другие пакеты в блестящем приложении, расположенные в этом каталоге? Вы работаете из rstudio или это действительно развернуто на блестящем сервере? - person lbollar; 07.07.2015
comment
Он развернут на блестящем сервере. Да, я могу использовать другие пакеты, я также обновил все пакеты до версий, используемых в RStudio (где приложение работает нормально). - person Bachkippe; 07.07.2015
comment
Извините, я не думал, что это потребуется. Не могли бы вы отредактировать исходный пост, включив в него минимальный воспроизводимый пример и вывод sessionInfo(). - person lbollar; 07.07.2015
comment
Итак, я смог воспроизвести вашу ошибку при запуске с блестящего сервера. Для меня установка пакета chron (убедившись, что он установлен в правильный каталог, снова используя lib=) исправила это. Я получил ту же ошибку, что и вы, в консоли js, но затем он также сказал, что не смог найти хрон пакета. Установка хрона убрала все ошибки. Я использую R 3.1.3 - person lbollar; 08.07.2015
comment
Кроме того, если это не сработает, я бы посмотрел на эту страницу data.table и сделал Убедитесь, что все, что использует data.table, действительно установлено в правильном каталоге. - person lbollar; 09.07.2015

Спасибо вам @lbollar и @MarkeD! Установка пакета chron и install_github версии data.table устранила мою проблему.

person Bachkippe    schedule 09.07.2015