目前我了解如何将python模块导入Flask,例如在模块' myfunctions'正在导入,并且正在调用其中的函数。
from flask import Flask, render_template, request
from myfunctions import printtext
app = Flask(__name__)
@app.route("/")
def hello():
return render_template('echo.html')
但是如何导入R脚本 - 用Plotly for R命令编写?它是用同样的原理完成的,还是你不能导入一些不是Pythonic的东西'?我们是否必须以某种方式从我们的网络应用程序中导出数据?
答案 0 :(得分:0)
快速回答是否定的,您不能将R代码作为Python模块导入。但是,有很多方法可以将R脚本编织到Python中。我会在这里快速解决几个问题:
1)使用bash运行两个不同的脚本。
这是集成用不同语言编写的脚本的一种非常常见的方式:
#! /usr/bin/bash
python mypythonscript.py > data.txt
Rscript myrscript.r -i data.txt -o final_results.txt
echo "All Done!"
2)从Python中调用R脚本
有几种方法可以做到这一点,第一种方法是使用os.system
:
import os
print('Do things in python here')
# Now call the R script
os.system('Rscript myrscript.r')
或使用subprocess
模块:
import subprocess
print('Do things in python here')
# Now open a subprocess
p = subprocess.Popen(['Rscript', 'myrscript.r'], stdout=subprocess.PIPE)
p.wait()
data = p.stdout.read()
print(data)
3)使用rpy
我对此软件包没有多少经验,所以我只想指出这个软件包的文档:https://rpy2.bitbucket.io/