看板 R_Language 關於我們 聯絡資訊
※ 引述《Edster (Edster)》之銘言: : - 問題: : 能否用Python打包R, 最後做成單獨執行的exe? : [問題類型]: : 經驗諮詢(我想用R 連接某些資料庫,請問大家的經驗) : 開發者(有撰寫R 的套件經驗) : [問題敘述]: : 我主要是用R,剛自學python沒多久。 : 最近有案主要我提供可執行的程式,(本來是幫他們算完就好, 但現在要程式)。 : 因為不想直接給原始程式碼,且他們同意做成exe. : 想請問能否用Python做成執行檔, 但實際上裡面全部是在做R的運算? : 因為有引用幾個重要的package是R寫的,所以也不能直接換成python來算。 : ps: 請問這樣我引用的package也要每次都呼叫嗎? : 要是他們換電腦不就還要重新裝那隻package? 這問題我也被問過很多次XDDD 這裡先回答你的問題,基本上不行 從Python要編譯成exe,可行沒錯 但是問題R你要怎麼在Python中執行? 就算用rpy2,你也要有R binary,這條路我沒試過 但是看了一下stackoverflow有點困難 https://stackoverflow.com/questions/5850818/has-anyone-used-rpy2-with-py2exe 再來就是,你可以考慮的方式 把R檔案都加密,然後解密邏輯寫在Python裡面 用system命令呼叫捆好的R去執行解密後的script檔案 下面有幾種方式: 1. 開web API給對方,可以用OpenCPU這種solution把R code藏在web後面 2. 同推文,用Shiny 3. 我以前用過的做法是用C#的R.Net,然後把程式碼用C#加密 執行的時候解密R檔案,然後丟進去捆好的R binary裡面 附上github: https://github.com/ChingChuan-Chen/rnet_and_r_portable (沒做加解密,只有直接用C# call R,R code可以編譯在C#裡面) 恩... 以上XD 最後有一個方法沒提到 把邏輯都寫成Rcpp編譯成DLL,然後都只給對方編譯好的Pkg 叫對方去用R執行XD -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.14.59.166 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1569511363.A.99C.html
cywhale: 推 沒想過Rcpp這招.. 如果用1 opencpu記得apache那也要藏 09/27 09:09
cywhale: 否則opencpu web api可以看code http://bit.ly/2nGQkA7 09/27 09:12
恩 對 要設定瀏覽權限,我想說如果要用,應該會自己去找,我就沒有提了XD ※ 編輯: celestialgod (119.14.59.166 臺灣), 09/27/2019 09:55:17