Verfasst am: 10.05.2016, 11:17
Titel: Aufruf von Python-Funktion subprocess.call führt zu Fehler?
Hallo,
ich will aus einem Matlab-Skript heraus eine Python-Funktion ausführen, die wiederum mittels subprocess.call Matlab ausführt.
Hintergrund:
Ich will aus einer 64-Bit-Version von Matlab die 32-Bit-Version von Matlab zentral ausführen um ein 32-Bit-Simulink-Modell auszuführen. Daher brauche ich Python als Middleware.
Hier mein Code:
Code:
clear classes
mod = py.importlib.import_module('funktionen');
py.importlib.reload(mod);
py.funktionen.simStartParkTEST() %Hier wird die Python-Funktion ausgeführt
Der obige Python-Code funktioniert. Aber nur, weil ich stdout=subprocess.PIPE,stdin=subprocess.PIPE aus dem Funktionskopf von call rausgenomen hat. Wenn ich den unteren Funktionsaufruf wieder unkommentiere, erhalte ich folgenden Fehler:
Zitat:
Error using subprocess>_make_inheritable (line 1062)
Python Error: OSError: [WinError 6] Das Handle ist ungültig
Error in subprocess>_get_handles (line 1050)
errwrite = self._make_inheritable(errwrite)
Error in subprocess>call (line 535)
with Popen(*popenargs, **kwargs) as p:
Error in funktionen>simStartParkTEST (line 164)
subprocess.call([r"C:\Program Files (x86)\MATLAB\R2012b\bin\matlab.exe","-nosplash",
"-nodesktop","-wait","-softwareopengl", "-r","disp('Hallo')"],stdout=subprocess.PIPE,stdin=subprocess.PIPE)
Wenn ich die Python-Funktion direkt aus Python starte, erhalte ich diesen Fehler nicht!
Weiss jemand, warum bei Ausführen aus Matlab heraus sich der Fehler Python Error: OSError: [WinError 6] Das Handle ist ungülti einstellt und was dieser zu bedeuten hat?
Gast99999
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.11.2018, 10:13
Titel: Korrektur
schreibe anstatt:
py.funktionen.simStartParkTEST() %Hier wird die Python-Funktion ausgeführt
Folgendes:
mod.simStartParkTEST() %Hier wird die Python-Funktion ausgeführt
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.