為什麼這篇exe檔程式碼鄉民發文收入到精華區:因為在exe檔程式碼這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者celestialgod (天)看板R_Language標題Re: [問題] 用Python呼叫...
※ 引述《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
恩 對 要設定瀏覽權限,我想說如果要用,應該會自己去找,我就沒有提了XD
※ 編輯: celestialgod (119.14.59.166 臺灣), 09/27/2019 09:55:17