我正在尝试为我的公司和同事部署一个独立的闪亮应用程序,而无需安装R。我已阅读了有关使用R and Chrome 的便携式版本进行此操作的说明。这些说明非常简单明了,并且就像一个魅力。唯一的事情是,当我在计算机上未打开正常版本的Chrome时,该应用程序无法运行。它会打开一个空白的Chrome窗口,并且日志文件显示以下错误代码:
[8268:13428:0115 / 120242.667:ERROR:browser_gpu_channel_host_factory.cc(139)]无法启动GPU进程。 [8268:8444:0115 / 120242.980:ERROR:in_progress_cache_impl.cc(203)]缓存未初始化,无法RetrieveEntry。 [8268:8444:0115 / 120242.981:ERROR:in_progress_cache_impl.cc(203)]缓存未初始化,无法RetrieveEntry。 [8268:8444:0115 / 120242.981:ERROR:in_progress_cache_impl.cc(203)]缓存未初始化,无法RetrieveEntry。 [8268:8444:0115 / 120242.982:ERROR:in_progress_cache_impl.cc(203)]缓存未初始化,无法RetrieveEntry。 [8268:8444:0115 / 120242.982:ERROR:in_progress_cache_impl.cc(203)]缓存未初始化,无法RetrieveEntry。 [8268:8444:0115 / 120242.983:ERROR:in_progress_cache_impl.cc(203)]缓存未初始化,无法RetrieveEntry。 [8268:13428:0115 / 120243.047:ERROR:browser_gpu_channel_host_factory.cc(139)]无法启动GPU进程。
关闭窗口后,在taskmanager中杀死R任务,打开我的普通版Chrome并重新启动程序,一切正常。 我的runShinyApp.R的代码是:
message('library paths:\n', paste('... ', .libPaths(), sep='', collapse='\n'))
chrome.portable = file.path(getwd(),
'../GoogleChromePortable/App/Chrome-bin/chrome.exe')
launch.browser = function(appUrl, browser.path=chrome.portable) {
browser.path = chartr('/', '\\', browser.path)
message('Browser path: ', browser.path)
CMD = browser.path
ARGS = sprintf('--app="%s"', appUrl)
system2(CMD, args=ARGS, wait=FALSE)
NULL
}
shiny::runApp('./shiny/', launch.browser=launch.browser)
我的run.vbs看起来像这样:
Rexe = "../R-Portable\App\R-Portable\bin\Rscript.exe"
Ropts = "--no-save --no-environ --no-init-file --no-restore --no-Rconsole"
RScriptFile = "runShinyApp.R"
Outfile = "ShinyApp.log"
strCommand = Rexe & " " & Ropts & " " & RScriptFile & " 1> " & Outfile & " 2>&1"
intWindowStyle = 0 ' Hide the window and activate another window.'
bWaitOnReturn = False ' continue running script after launching R '
' the following is a Sub call, so no parentheses around arguments'
CreateObject("Wscript.Shell").Run strCommand, intWindowStyle, bWaitOnReturn
总而言之,每当运行正常版本的Chrome时,该应用程序都可以正常运行,不是吗?这种错过了便携式版本的目标,只是我在使用该应用之前必须给同事的另一条令人讨厌的指示。
有人知道解决办法吗?