Ich versuche, einen R-Skript durch Python subprocess
zu laufen, aber leider bin ich immer die folgende Fehlermeldung erhalten:Python - Mit subprocess zu Rohr R Script, resultierende WinError 2
WindowsError: [Error 2] The system cannot find the file specified
Dies ist äußerst frustrierend, da ich den Pfad mehrfach über alles überprüft habe (ohne C: /, in andere Verzeichnisse verschoben, das R-Skript geändert, das ich ausführen möchte usw.). Ich habe auch die CompSec-Umgebungsvariable überprüft, und es ist auch korrekt (über Windows-Systeme, obwohl ich es nie direkt in meiner IDE, Spyder überprüfte). Ich habe versucht, es in Python 2.7 und Python 3.5 zu tun, und keine der beiden Versionen funktioniert.
Der Code lautet wie folgt:
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)
Die Tatsache, dass ich diesen Fehler bekommen, egal was Code, den ich versuche zu laufen (auch eklatant copy-Einfügen this tutorial zu versuchen und es funktioniert) macht mir das Gefühl, etwas tieferes (oder etwas extrem Offensichtliches) geht vor sich, das ich nicht sehe.
Ich würde mich über jede Rückmeldung zu diesem Thema freuen.
Können Sie den Befehl in cmd ausführen? – Natecat
Versuchen Sie, den vollständigen Pfad zur ausführbaren Datei anzugeben (unter der Annahme, dass _Rscript_ das Programm ist, das Sie ausführen möchten). – handle
Präfix Ihren Skriptbefehl mit "cmd/c". Wenn es keine ausführbare Datei ist, wird das 'subprocess'-Modul es nicht für Sie ausführen (anders als' os.system') –