Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在带有子进程的Python中运行R脚本时出错_Python_R_Subprocess - Fatal编程技术网

在带有子进程的Python中运行R脚本时出错

在带有子进程的Python中运行R脚本时出错,python,r,subprocess,Python,R,Subprocess,我试图在执行python脚本时运行与python脚本位于同一目录中的R脚本 到目前为止,我已经: if condition is True: import subprocess subprocess.call (["C:/Program Files/R/R-3.4.3/Rscript", "./testing.r"]) sys.exit() 我不断得到错误: OSError: [WinError 193] %1 is not a valid Win32 applicat

我试图在执行python脚本时运行与python脚本位于同一目录中的R脚本

到目前为止,我已经:

if condition is True:
    import subprocess
    subprocess.call (["C:/Program Files/R/R-3.4.3/Rscript", "./testing.r"])
    sys.exit()
我不断得到错误:

OSError: [WinError 193] %1 is not a valid Win32 application

我曾尝试将“C:/Program Files/R/R-3.4.3/Rscript”替换为“/usr/bin/Rscript”,但始终出现相同的错误。我想知道是否有人知道它为什么一直抛出这个错误?

我相信subprocess.call的参数会直接传递到命令行,因此您需要将引号转义为“\”C:/Program Files/R/R-3.4.3/Rscript\”。也就是说,当我使用这个时,我得到了一个[WinError 5]访问冲突错误。解决方法是使用可执行参数:

import sys
import subprocess

if True is True:
    subprocess.call(["C:/Program Files/R/R-3.4.3/Rscript.exe", "./testing.r"], 
                    executable="C:/Program Files/R/R-3.4.3/Rscript.exe")
    sys.exit()

另外,请确保C:/Program Files/R/R-3.4.3/Rscript.exe是Rscript.exe的位置。我的是C:/Program Files/R/R-3.4.3/bin/Rscript.exe。

确定不应该随cmd一起提交吗?试试这个
subprocess.call(['C:/Program Files/R/R-3.4.3/Rscript','--vanilla','testing.R'],shell=True)
或者提供R脚本文件的完整路径我想这可能是路径问题。(R版本和Rscript路径确实正确吗?)如果是,则为
testing.R
提供完整的绝对路径,因此“C:/full/absolute/path/to/testing.R”(或者是“D:/”偶数)?我尝试了这两种建议,但得到的错误是“C:/Program Files/R-3.4.3/Rscript”未被识别为外部或内部命令。是,我在“C:/Program Files/R/R-3.4.3/bin/Rscript.exe”中缺少“bin”。谢谢