2014-06-13 33 views
0

我做的R包,除其他事项外,呼吁一个python命令行程序用下面的代码:将调用添加到R包中的(Python)命令行程序的最佳方式是什么?

py_loc = paste('C:/Python33/python.exe',system.file('exec', 'example.py', package='examplePackage')) 
command <- paste(py_loc,"-e example") 

它运行程序example.py在我example包的使用Python可执行C:/Python33/python.exeexec文件夹。因为我使用Windows,并且我想与其他Windows用户(但也是非Windows用户)共享它,所以我无法使用rPython编写代码。 问题是,python.exe将位于其他用户不同的地方。

我的想法是添加一个config文件,您可以在其中设置Python可执行文件的位置,或者将其作为函数的输入。有没有更好的方式将调用添加到R包中的(Python)命令行程序中?

+1

你看过http://cran.r-project.org/web/packages/findpython/index.html – jdharrison

+0

@jdharrison我不知道存在,谢谢! –

回答

0

你可以做的是做一个平台依赖的包装函数,它接受python可执行文件的路径,python脚本和脚本的命令行参数。这应该创建正确的批处理/ shell命令字符串,并与R.的system命令来运行它,它可以让你捕获从批处理/ shell过程的输出,你可以进一步处理此输出,在R.

0

尝试rPython只要安装了Python和相关模块,就可以实现与平台无关的调用。

Examples

+0

rPython在Windows上不起作用。 –

相关问题