我正在尝试使用subprocess
通过Python运行R脚本,但不幸的是,我不断收到以下错误:
WindowsError: [Error 2] The system cannot find the file specified
这是非常令人沮丧的,因为我已经多次检查了所有路径(没有C:/完成它,移动到不同的目录,更改了我试图运行的R脚本等)。我还检查了CompSec环境变量,它也是正确的(通过Windows系统,虽然我从未在我的IDE中直接检查它,Spyder)。我已经尝试在Python 2.7和Python 3.5中使用它,并且两个版本都不起作用。
代码如下:
import subprocess
def sort_ByInputColumn(inputPath, inputFileTermination, sortColumn, outputPath, outputFileTermination):
scriptPath = "C:/Users/Kyle/Documents/Rscript_SortByInputColumn.R"
subprocess.call(["Rscript", scriptPath, inputPath, inputFileTermination, sortColumn, outputPath, outputFileTermination])
fileName = 'Alabama'
outputPath = "C:/Users/Kyle/Documents/HillData/Data/Output/Module2/"
sortColumn = str(16)
inputTermination = fileName + 'Module2NN_WorkCounty_Work.csv'
outputFileTermination = fileName + 'Module2NN_SortedWorkCounty.csv'
sort_ByInputColumn(outputPath, inputTermination, sortColumn, outputPath, outputFileTermination)
无论我尝试运行什么代码(甚至公然复制粘贴this tutorial以尝试使其工作),我都会收到此错误这一事实让我感觉更深层次(或非常明显的东西)正在发生我没有看到。
欢迎任何有关此事的反馈。
答案 0 :(得分:2)
为了解决这个最烦人和最可怕的问题,我将R重新安装到一个没有空格的目录中,并将Rscript
称为"C:/R/R-3.3.1/bin/Rscript.exe"
及其完整路径(C:/Program Files/R/R-3.3.1/bin/Rscript.exe"
来自Program Files
,因为{{1}有一个空格,这会杀死subprocess
,因为它是基于命令行的,我猜)。这次,它奏效了。
请参阅this similar question,了解我获得灵感的地方。