无法在MRS远程会话中加载data.table包

时间:2017-03-09 12:11:20

标签: r packages microsoft-r deployr rro

当我尝试在MS R Server上的远程会话中加载data.table包时,出现错误:

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配置为一个盒子,即web节点和计算节点都在该机器上运行。
  2. 我在本地计算机上运行R客户端(称之为B),通过Microsoft Visual Studio Professional 2015版本14.0.25431.01更新3,Microsoft .NET Framework版本4.6.01038和R Tools for Visual Studio,1.0.30228.1316 RC2
  3. 我通过运行' Rgui'直接在机器A上安装了data.table包。使用此命令控制台:install.packages(' data.table')。该库安装在机器A上由R_LIBS系统环境变量指定的lib C:\ RglobalPkgs中。
  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 个答案:

答案 0 :(得分:0)

我通过电子邮件向开发团队发送了相关信息。回复如下:

  

我们已经意识到了这个问题,并将在下一个版本中推出修复程序。   解决方法是使用计算节点转到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服务。