我创建了一个R包,除其他外,使用以下代码调用python命令行程序:
py_loc = paste('C:/Python33/python.exe',system.file('exec', 'example.py', package='examplePackage'))
command <- paste(py_loc,"-e example")
它使用Python可执行文件example.py
在exec
包的example
文件夹中运行程序C:/Python33/python.exe
。因为我使用Windows,并且我想与其他Windows用户(但也是非Windows用户)共享它,我不能使用rPython来编写代码。
问题是python.exe
将位于其他用户不同的位置。
我的想法是添加一个config
文件,您可以在其中设置Python可执行文件的位置,或者将其作为函数的输入。有没有更好的方法在R包中添加对(Python)命令行程序的调用?
答案 0 :(得分:1)
“rPython尚未在Windows上运行。” 然而,rPython的作者为Windows编写了一个版本: https://github.com/cjgb/rPython-win rPython和rPython-win都要求先安装Python,然后将R包“指向”它。 我最近了解到另一个'包装'包,PythonInR:https://bitbucket.org/Floooo/pythoninr/ 我没有尝试过,但文档看起来很重要。
答案 1 :(得分:0)
你可以做的是创建一个依赖于平台的包装函数,它接受python可执行文件的路径,python脚本和脚本的命令行参数。这应该创建正确的批处理/ shell命令字符串,并使用R中的system
命令运行它。它将允许您捕获批处理/ shell进程的输出,并且您可以在R中进一步操作此输出。
答案 2 :(得分:0)