Ich versuche, eine Python-Datei "hello.py" aus dem Python-Interpreter heraus mit Subprozess aufzurufen. Ich kann diesen Fehler jedoch nicht beheben. [Python 3.4.1].
import subprocess
subprocess.call(['hello.py', 'htmlfilename.htm'])
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
subprocess.call(['hello.py', 'htmlfilename.htm'])
File "C:\Python34\lib\subprocess.py", line 537, in call
with Popen(*popenargs, **kwargs) as p:
File "C:\Python34\lib\subprocess.py", line 858, in __init__
restore_signals, start_new_session)
File "C:\Python34\lib\subprocess.py", line 1111, in _execute_child
startupinfo)
OSError: [WinError 193] %1 is not a valid Win32 application
Gibt es auch eine andere Möglichkeit, "ein Python-Skript mit Argumenten aufzurufen", als einen Unterprozess zu verwenden? Vielen Dank im Voraus.
Der Fehler ist ziemlich klar. Die Datei hello.py
ist keine ausführbare Datei. Sie müssen die ausführbare Datei angeben:
subprocess.call(['python.exe', 'hello.py', 'htmlfilename.htm'])
python.exe
muss im Suchpfad sichtbar sein oder Sie können den vollständigen Pfad an die ausführbare Datei übergeben, in der das aufrufende Skript ausgeführt wird:
import sys
subprocess.call([sys.executable, 'hello.py', 'htmlfilename.htm'])
Python-Installationsprogramme registrieren normalerweise .py-Dateien beim System. Wenn Sie die Shell explizit ausführen, funktioniert sie:
import subprocess
subprocess.call(['hello.py', 'htmlfilename.htm'], Shell=True)
# --- or ----
subprocess.call('hello.py htmlfilename.htm', Shell=True)
Sie können Ihre Dateizuordnungen in der Befehlszeile mit überprüfen
C:\>assoc .py
.py=Python.File
C:\>ftype Python.File
Python.File="C:\Python27\python.exe" "%1" %*
Ich habe die gleiche Fehlermeldung erhalten, als ich vergessen habe, Shell=True
im subprocess.call
zu verwenden.
subprocess.call('python modify_depth_images.py', Shell=True)
Einen externen Befehl ausführen, ohne mit ihm zu interagieren, z. B. einen würde mit os.system () tun, benutze die call () Funktion.
teilprozess importieren
Einfacher Befehl subprocess.call (['ls', '-1'], Shell = True)
Ich habe diesen Fehler auch erlebt. Dann installiere ich Visual Studio 2015 Redistribution package über diesen Link. Problem gelöst:). Probieren Sie es aus, bevor Sie weitere Änderungen vornehmen.
OSError: [WinError 193]% 1 ist keine gültige Win32-Anwendung
Dieser Fehler ist höchstwahrscheinlich auf diese Zeile zurückzuführen nterprozess importieren
Ich hatte das gleiche Problem und hatte es durch Deinstallieren und erneutes Installieren gelöst python und anaconda dann habe ich jupyter verwendet und geschrieben pip install numpy das gab mir den ganzen Pfad, wo es war Abrufen meiner Site-Pakete von Ich habe meinen Site-Paket-Ordner gelöscht und dann ist der Fehler verschwunden. Eigentlich, weil ich 2 Ordner für Site-Pakete hatte, einen mit Anaconda und einen anderen irgendwo in den App-Daten (die einige Probleme hatten), seit ich gelöscht habe Dieser Site-Paket-Ordner hat dann automatisch damit begonnen, meine Bibliotheken aus dem Site-Paket-Ordner zu entfernen, der mit Anaconda erstellt wurde. Daher wurde das Problem behoben.