作者celestialgod (天)
看板R_Language
标题Re: [问题] 用Python呼叫R, 再包成exe档?
时间Thu Sep 26 23:22:40 2019
※ 引述《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://webptt.com/cn.aspx?n=bbs/R_Language/M.1569511363.A.99C.html
1F:推 cywhale: 推 没想过Rcpp这招.. 如果用1 opencpu记得apache那也要藏 09/27 09:09
恩 对 要设定浏览权限,我想说如果要用,应该会自己去找,我就没有提了XD
※ 编辑: celestialgod (119.14.59.166 台湾), 09/27/2019 09:55:17