Не удается загрузить пакет data.table в удаленном сеансе MRS

Когда я пытаюсь загрузить пакет data.table в удаленном сеансе на сервере MS R, я получаю сообщение об ошибке:

REMOTE> library(data.table)
Error: package or namespace load failed for 'data.table'

Используя пространство имен напрямую, я получаю больше цвета:

REMOTE> data.table::data.table(x = 1)
Error: .onLoad failed in loadNamespace() for 'data.table', details:
  call: assign("cbind.data.frame", tt, envir = asNamespace("base"), inherits = FALSE)
  error: cannot change value of locked binding for 'cbind.data.frame'

Любой совет, как решить эту проблему?

Вот еще немного информации о том, как настроить сервер R и как я устанавливаю пакеты:

  1. Сервер R работает на отдельной машине (назовите ее A) от той, где я запускаю удаленный сеанс. Машина A сконфигурирована как однопакетная, т.е. веб-узел и вычислительный узел работают на этом компьютере.
  2. Я запускаю R-клиент на своем локальном компьютере (назовем его B) через Microsoft Visual Studio Professional 2015 версии 14.0.25431.01, обновление 3, Microsoft .NET Framework версии 4.6.01038 с R Tools для Visual Studio, 1.0.30228.1316 RC2.
  3. Я установил пакет data.table непосредственно на машину A, запустив консоль 'Rgui' с помощью этой команды: install.packages('data.table'). Библиотека устанавливается в lib C:\RglobalPkgs, заданную системной переменной среды R_LIBS на компьютере A.
  4. Я создаю удаленный сеанс на машине B, выполняющей эти команды:

    library(mrsdeploy) remoteLogin("http://machineA:12800", username = "admin", password = "xyz", session = TRUE, commandline = TRUE)

  5. В удаленном сеансе я пытаюсь загрузить пакет data.table, как описано выше в начале моего вопроса, который не удается. Запуск.libPath() в удаленном сеансе дает:

    REMOTE> .libPaths() [1] "C:/RglobalPkgs" [2] "C:/Program Files/Microsoft/R Server/R_SERVER/library"

1 ответ

Решение

Я написал по электронной почте команде разработчиков об этом. Ответ ниже:

Мы знаем об этой проблеме и исправим ее в следующем выпуске. Временное решение: перейти на C:\Program Files\Microsoft\R Server\R_SERVER\deployr\RServe\RScripts\source.R на компьютере с вычислительным узлом и закомментировать

#  unlockBinding("unlockBinding",b)
#  assign("unlockBinding", deployr.unlock, envir=b)
#  lockBinding("unlockBinding", b)

Затем перейдите в службы и перезапустите службу RServe9.0.0.

Другие вопросы по тегам