Python Popen Schwierigkeiten: Die Datei wurde nicht gefunden
-
19-09-2019 - |
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
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?