将Rlot Plotly导入Flask

时间:2017-02-07 13:36:57

标签: python flask bioinformatics

目前我了解如何将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的东西'?我们是否必须以某种方式从我们的网络应用程序中导出数据?

1 个答案:

答案 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

直接在R代码中嵌入R代码

我对此软件包没有多少经验,所以我只想指出这个软件包的文档:https://rpy2.bitbucket.io/