subprocess.Popen() - Stream stdout / stdin /stderr
Verfasst: Dienstag 6. Januar 2015, 10:19
Hey liebe leute,
ich bin aktuell dabei den Installer für unserer Software easyPANEL in Python zu schreiben.
Es klappt auch alles ganz gut, nur habe ich ein Problem. Es muss zuvor ein Update vom System gemacht werden bevor ich die Software für easyPANEL installieren kann.
Nun habe ich folgendes gemacht.
Das apt-get remove ist nur ein Beispiel... Folgedes spielt sich nun ab.
Ich erhalte die Interaktion mit der shell, bekomme die ausgabe und kann aggieren. Das problem ist, man wird gefragt ob man wirklcih fortfahren will
UnixBoard Thread Subprocess
Die haben mich hierher verwiesen.
Einer von euch kann mir doch sicherlich helfen, oder ?
Danke euch.
Gruß
ich bin aktuell dabei den Installer für unserer Software easyPANEL in Python zu schreiben.
Es klappt auch alles ganz gut, nur habe ich ein Problem. Es muss zuvor ein Update vom System gemacht werden bevor ich die Software für easyPANEL installieren kann.
Nun habe ich folgendes gemacht.
Code: Alles auswählen
def set_install_software():
proc = Popen('apt-get remove htop',
shell=True,
stdout=PIPE,
stdin=PIPE
)
while proc.poll() is None:
output = proc.stdout.readline()
stdout.write(output)
if __name__ == "__main__":
set_install_software()
Ich erhalte die Interaktion mit der shell, bekomme die ausgabe und kann aggieren. Das problem ist, man wird gefragt ob man wirklcih fortfahren will
Die letzte zeile bekomme ich nicht ausgegeben... Nun habe ich aufen Unixboard nachgefragt.apt-get remove htop
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
htop
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 1 nicht aktualisiert.
Nach dieser Operation werden 216 kB Plattenplatz freigegeben.
Möchten Sie fortfahren [J/n]?
UnixBoard Thread Subprocess
Die haben mich hierher verwiesen.

Einer von euch kann mir doch sicherlich helfen, oder ?
Danke euch.
Gruß