openCPU 和 rstan - 无法打开连接
openCPU and rstan - cannot open the connection
我正在使用 openCPU 创建一个 API 来估计 rstan 中非常基本的模型。
我已经验证我的函数在从普通 R 控制台会话调用时在我的环境中工作,而不是从 openCPU 调用。
但是通过openCPU调用时,响应如下:
cannot open the connection
In call:
file(con, "r")
通过在 rstan 的源代码中插入检查点,我将其追溯到 R/cxxfunplus.R (link to line on github here):
中的一个调用
dso <- new('cxxdso', sig = sig, dso_saved = save_dso,
dso_filename = dso_filename,
modulename = module_name,
system = R.version$system,
cxxflags = get_makefile_flags("CXXFLAGS"),
.CXXDSOMISC = new.env(parent = emptyenv()))
此调用中的什么尝试读取可能失败的连接?
想通了 - 当 运行 在 openCPU 下时,rstan::get_makefile_txt
正在寻找的两个 makefile 之一不存在。该文件是 /usr/share/R/share/make.
幸运的是,第一个 makefile 确实存在并且足够了,因此可以通过跳过第二个 makefile 并只读取第一个来纠正这个问题。
在rstan::get_makefile_text
的最后一行之前,我插入了以下内容:
makefiles <- makefiles[file.exists(makefiles)]
我正在使用 openCPU 创建一个 API 来估计 rstan 中非常基本的模型。
我已经验证我的函数在从普通 R 控制台会话调用时在我的环境中工作,而不是从 openCPU 调用。
但是通过openCPU调用时,响应如下:
cannot open the connection
In call:
file(con, "r")
通过在 rstan 的源代码中插入检查点,我将其追溯到 R/cxxfunplus.R (link to line on github here):
中的一个调用dso <- new('cxxdso', sig = sig, dso_saved = save_dso,
dso_filename = dso_filename,
modulename = module_name,
system = R.version$system,
cxxflags = get_makefile_flags("CXXFLAGS"),
.CXXDSOMISC = new.env(parent = emptyenv()))
此调用中的什么尝试读取可能失败的连接?
想通了 - 当 运行 在 openCPU 下时,rstan::get_makefile_txt
正在寻找的两个 makefile 之一不存在。该文件是 /usr/share/R/share/make.
幸运的是,第一个 makefile 确实存在并且足够了,因此可以通过跳过第二个 makefile 并只读取第一个来纠正这个问题。
在rstan::get_makefile_text
的最后一行之前,我插入了以下内容:
makefiles <- makefiles[file.exists(makefiles)]