Зачем использовать rpy2
просто для запуска сценария R?Не используйте этот интерфейс и вместо этого используйте автоматизированную командную строку Rscript.exe
, которую Python может вызывать со встроенным subprocess
, как любой внешний исполняемый файл, даже при передаче необходимых аргументов.
Ниже предполагается, что у вас есть папка R bin в переменной среды PATH для распознавания Rscript
.Если нет, добавьте полный путь к этому исполняемому файлу в первый аргумент cmd .Также обязательно укажите полный путь к файлу в run_R метод:
from subprocess import Popen, PIPE
def run_R(file):
# COMMAND WITH ARGUMENTS
cmd = ["Rscript", "myR_script.R", file]
p = Popen(cmd, cwd="/path/to/folder/of/my_script.R/"
stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, error = p.communicate()
# PRINT R CONSOLE OUTPUT (ERROR OR NOT)
if p.returncode == 0:
print('R OUTPUT:\n {0}'.format(output))
else:
print('R ERROR:\n {0}'.format(error))