在带有子进程的Python中运行R脚本时出错
我试图在执行python脚本时运行与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
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”。谢谢