Ich rufe mit subprocess.Popen(..., shell=True) ein anderes Skript auf.
Dort will ich mit print() debug-Informationen ausgeben lassen, da meine IDE nicht einfach zum Debuggen in das nächste Skript springt
Leider kommt mit print() nichts - wieso?
print in script
- __blackjack__
- User
- Beiträge: 13110
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@drnicolas: ”Einfach” in das nächste Skript springen geht ja auch gar nicht. Das wird noch mal unmöglicher wenn man da noch eine Shell dazwischen schaltet, denn *den* Code müsste der Debugger dann ja auch verstehen können, und da ist ja nicht einmal klar *welche* Shell das ist.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
mit dem "shell=True" wird meiner Meinung nach irgendwo im Hintergrund eine neue Shell gestartet und dort läuft dann das zweite Skript... und in dieser Hintergrund-Shell landen dann auch die print-Ausgaben.
(wenn das zweite Skritp durchgelaufen ist wird auch gleich die Hintergrund-Shell beendet und beerdigt. )
- __blackjack__
- User
- Beiträge: 13110
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@grubenfox: Aber normalerweise gibt die Shell die Ausgaben ihrerseits ja auch einfach nur über das geerbte echte `stdout` des Elternprozesses aus. Würde also die Vermutung nahelegen, dass die IDE die Ausgaben nicht dort abgreift, sondern das erste Programm irgendwie in der eigenen Umgebung ausführt und entweder `sys.stdout` abgreift oder gar `print()` durch etwas eigenes ersetzt. Da würde ich dann die IDE als ein bisschen problematisch ansehen. Ich starte Konsolenprogramme ja sowieso immer in der Konsole, damit ich weiss wie die sich *dort* verhalten wo sie im Endeffekt auch laufen sollen, und ausschliessen zu können, dass IDE oder Editor sich da irgendwie subtil (oder eben auch deutlich) anders verhalten.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
@__blackjack__: Ja... Zustimmung meinerseits....
Wenn ich auch gerne die entstehenden Programme während der Entwicklung direkt aus dem Editor starte (einfach [STRG]+[ B ] ist beim tippen ja schnell gedrückt), kommt irgendwann der Moment ab dem ich dann in ein extra Konsolenfenster wechsel und das Ding dann dort starte. Ich glaube bei mir waren es meistens Zeichensatz-Problematiken bei denen ich dann Unterschiede zwischen der Ausgabe im Editor und der Ausgabe in der Konsole hatte. Und auch beim hantieren mit relativen Dateipfaden.
Wenn ich auch gerne die entstehenden Programme während der Entwicklung direkt aus dem Editor starte (einfach [STRG]+[ B ] ist beim tippen ja schnell gedrückt), kommt irgendwann der Moment ab dem ich dann in ein extra Konsolenfenster wechsel und das Ding dann dort starte. Ich glaube bei mir waren es meistens Zeichensatz-Problematiken bei denen ich dann Unterschiede zwischen der Ausgabe im Editor und der Ausgabe in der Konsole hatte. Und auch beim hantieren mit relativen Dateipfaden.