2017-02-07 7 views
-1

Momentan verstehe ich, wie man ein Python-Modul in Flask importiert, zum Beispiel unter dem Modul 'myfunctions' wird importiert und eine Funktion wird aufgerufen.Importieren von Plot für R in Flask

Aber wie würde man den Import eines R-Skripts - geschrieben mit Plotly for R-Befehlen - angehen? Würde es nach dem gleichen Prinzip geschehen oder könnten Sie etwas importieren, das nicht "pythonisch" ist? Müssen wir stattdessen Daten von unserer Web-App aus exportieren?

+0

Sie können normalerweise keine Sprache in eine andere Sprache importieren. – davidism

Antwort

0

Schnelle Antwort ist nein, Sie können R-Code nicht als Python-Modul importieren. Aber es gibt Möglichkeiten, R-Skripte in Python zu weben. Ich werde hier schnell ein paar ansprechen:

1) Verwenden Sie bash, um zwei verschiedene Skripts auszuführen.

Dies ist eine sehr häufige Art und Weise Skripte in verschiedenen Sprachen geschrieben zu integrieren:

#! /usr/bin/bash 
python mypythonscript.py > data.txt 
Rscript myrscript.r -i data.txt -o final_results.txt 
echo "All Done!" 

2) Rufen Sie R Skript in Python

Es gibt ein paar Möglichkeiten, dies zu tun, die erste ist mit os.system:

import os 
print('Do things in python here') 
# Now call the R script 
os.system('Rscript myrscript.r') 

Oder mit der subprocess Modul:

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) einbetten R-Code direkt in Python-Code mit rpy

Ich habe nicht viel Erfahrung mit diesem Paket haben, also werde ich Sie nur für diese in der Dokumentation verweisen one: https://rpy2.bitbucket.io/