2016-02-09 46 views
2

我有一個閃亮的應用程序,可以在我的電腦和shinyapps.io上完美運行。這個應用程序正在建立一個客戶端,我需要分享它在桌面上運行。我已經使用了這個here給出的指導。在桌面上部署shinyapps

我閃亮的服務器的第一行讀取RDS文件並加載數據。我已經在上面共享的示例中給出的閃亮文件夾中複製了RDS。我當前文件夾是這樣的:

C:/dist/ 
GoogleChromePortable 
R-Portable 
shiny - within shiny folder i have ui.R, server.R, lhg.RDS 
run.vbs 
runShinyApp.R 

run.vbs

Randomize 
CreateObject("Wscript.Shell").Run "R-Portable\App\R-Portable\bin\i386\R.exe CMD BATCH --vanilla --slave runShinyApp.R" & " " & RND & " ", 0, False 

runShinyApp.R

.libPaths("./R-Portable/App/R-Portable/library") 
browser.path <- file.path(getwd(),"GoogleChromePortable/GoogleChromePortable.exe") 
options(browser = browser.path) 
shiny::runApp("./Shiny/",port=8888,launch.browser=TRUE) 

我的服務器是這樣開始的:

lhg <- readRDS(file.path(getwd(),"LHG.RDS")) 

當我運行vbs文件,它會打開瀏覽器,但是拋出一個錯誤信息:

Error:object "lhg" not found 

每次我運行,則錯誤將創建一個包含相同的錯誤的日誌一些隨機數的新文件。

有人可以幫忙嗎?

+0

您的文件路徑看起來不一致......您的'.libPaths'添加與工作目錄相關,無論R-可移植的,你的'chrome.portable'和'runApp()'路徑是從'C:/'硬編碼的(似乎對事物的位置做出了強有力的假設),並且你不顯示你正在尋找的地方對於'lhg'文件。我沒有解決方案,但我認爲你需要弄清楚你的工作目錄是從哪裏去的。 – Gregor

+0

一個很好的診斷工具可能是製作一個簡單的閃亮應用程序,只需打印其工作目錄並將其粘貼在同一個框架中即可。 – Gregor

+0

@Gregor我已經對指定工作目錄的代碼進行了更改......我還包括了從server.R中讀取rds文件的行。隨着server.R中的更改,應用程序在我的原始代碼中啓動時沒有問題,但在便攜版本中引發相同的錯誤。這是兩臺不同的機器。 – Apricot

回答

2

您可能想要試用RInno軟件包(我剛剛在上個月將它發佈到了CRAN)。它可以幫助自動化這些類型的桌面部署的,你應該能夠得到與設置:

install.packages("RInno") 
require(RInno) 
RInno::install_inno() 

含ui.R &目錄server.R是app_dir

create_app(app_name = "Your app's name", app_dir = "path/to/app_dir") 
compile_iss() 

產生的安裝人員應按原樣安裝您的應用程序「,因此您無需管理那些棘手的工作目錄問題。如果它在你的開發環境中工作,它應該在安裝後工作。如果您想要了解如何自定義安裝的更多資源,請查看FI Labs - RInno

+0

非常感謝...會檢查出來。 – Apricot