ich bin sehr sehr neu in Python und bin auf ein Problem gestoßen das ich nicht hin kriege. Vielleicht kann mir ja hier jemand helfen, da ich leider kein Lösung gefunden habe.
Was ich machen will ist ein Programm (Dymola) mit Hilfe von einem DDE channel aufzurufen, dort sollen dann Befehle in der Kommandozeile ausgeführt werden (das funktioniert auch). Nun sollen, nachdem in Dymola Befehle ausgeführt wurden, Daten geplottet werden. Ich nutze dafür matplotlib (Fenster geht auch auf). Allerdings, wenn ich das Plotfenster schließe komme ich nicht ins CommanWindow von Windows zurück (ich muss es schließen). Wenn ich das Python File direkt ausführe kommt nach dem Schließen des Fensters auch ein 'Python reagiert nicht mehr'.
Das komische ist, benutze ich nur die DDE Sachen geht es und nutze ich nur plt.show ohne das DDE Zeug geht auch alles. Verwende ich es jedoch zusammen stürzt am Ende was ab . Als Notlösung lasse ich mir den Plot nicht mehr anzeigen sondern speichere das Bild nur--- aber das ist eigentlich nicht Sinn der Sache...
Eine mini mini Version des Codes mal hier, daran sieht man das Problem schon:
Code: Alles auswählen
import win32ui
import dde
import subprocess
import time
import os
import matplotlib.pyplot as plt
server = dde.CreateServer()
server.Create("TestClient") # wenn das raus ist geht es
conversation = dde.CreateConversation(server)
p = subprocess.Popen([r"C:\Program Files (x86)\Dymola 2012\bin\dymola.exe"], stdin = subprocess.PIPE)
server.Shutdown() # hilft leider auch nicht
server.Destroy() # hilft leider auch nicht
time.sleep(6)
plt.plot([1,2,3])
plt.show()
Über jegliche Hinweise bin ich sehr sehr dankbar.
Vielen Dank und VG
Lexa