Frage

Ich versuche, Python zu verwenden, um ein Programm auszuführen.

from subprocess import Popen 
sa_proc = Popen(['C:\\sa\\sa.exe','--?'])

Dieses kleine snippit Laufen gibt den Fehler:

  

WindowsError: [Fehler 2] Das System kann die angegebene Datei nicht finden

Das Programm existiert, und ich habe kopieren und direkt aus dem Explorer den absoluten Pfad zur EXE eingefügt. Ich habe andere Dinge ausprobiert und habe festgestellt, dass, wenn ich die EXE-Datei im Quellordner mit dem Python-Skript setzen und verwenden ‚./sa.exe‘, dann funktioniert es. Das einzige, was ich denken kann, ist, dass ich den Python-Skript renne (und Python) aus einer separaten Partition (F:).

Irgendwelche Ideen? Dank

War es hilfreich?

Lösung

Wie die Dokumentation sagen: „Unter Windows : die Popen-Klasse verwendet Createprocess (), um das Kind-Programm, das auf Strings arbeitet auszuführen Wenn args eine Sequenz ist, wird es mit dem list2cmdline () -Methode in einen String umgewandelt werden "... Vielleicht ist diese Methode Dinge, messing warum also nicht versuchen, den einfacheren Ansatz:

sa_proc = Popen('C:\\sa\\sa.exe --?')

Wenn dies immer noch fehlschlägt, dann: was os.environ['COMSPEC'] kurz bevor Sie versuchen, diese? Was passiert, wenn Sie , shell=True zu Popen Argumente hinzufügen?

Bearbeiten : anscheinend stellt sich heraus, ein Fall von einfachen Fehlspellling zu sein, als ‚SA‘ war eigentlich das Programm geschrieben Assassin - doppelt zweimal s - und was der OP schreibt war spamassasin -. ein Doppel s aber ein einziger das zweite Mal,

Andere Tipps

Sie können keine Berechtigung C auszuführen haben: \ sa \ sa.exe. Haben Sie das Programm manuell versucht mit?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top