1

当我尝试在 MS R 服务器上的远程会话中加载 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. 我通过 Microsoft Visual Studio Professional 2015 版本 14.0.25431.01 更新 3、Microsoft .NET Framework 版本 4.6.01038 和 Visual Studio 的 R 工具、1.0.30228.1316 RC2 在我的本地计算机上运行 R 客户端(称为 B)。
  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"

4

1 回答 1

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)

然后去services,重启RServe9.0.0服务。

于 2017-03-09T13:01:39.293 回答