Teilprozess.check_output versagt mit Fehler 127

Ich versuche zu aufrufen eines externen Programms aus meinem python-Anwendung, aber es zeigt keine Ausgabe und schlägt mit Fehler 127. Die Ausführung des Befehls von der Kommandozeile aus funktioniert einwandfrei. (und ich bin in der richtigen Arbeitsverzeichnis)

def buildContris (self, startUrl, reportArray):
    urls = []

    for row in reportArray:
        try:
            url = subprocess.check_output(["casperjs", "casper.js", startUrl, row[0]], shell=True)
            print (url)
            urls.append(url)
            break
        except subprocess.CalledProcessError as e:
            print ("Error: " + str(e.returncode) + " Output:" + e.output.decode())          

    return urls

Jedes loop-Ausgänge die folgenden Fehler: (ich habe auch überprüft e.cmd. Es ist richtig, aber lang, also habe ich es weggelassen in diesem Beispiel)

Error: 127 Output: 

LÖSUNG:

Der folgende code funktioniert

app = subprocess.Popen(["./casperjs/bin/casperjs", "casper.js", startUrl, row[0]], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env = {"PATH" : "/usr/local/bin/:/usr/bin"}, universal_newlines=True)
app.wait()
out, errs = app.communicate()
InformationsquelleAutor Jeff | 2013-09-06
Schreibe einen Kommentar