Re: [問題] 用Python呼叫R, 再包成exe檔?
※ 引述《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
推
09/27 09:09,
5年前
, 1F
09/27 09:09, 1F
→
09/27 09:12,
5年前
, 2F
09/27 09:12, 2F
恩 對 要設定瀏覽權限,我想說如果要用,應該會自己去找,我就沒有提了XD
※ 編輯: celestialgod (119.14.59.166 臺灣), 09/27/2019 09:55:17
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章