Win 7 mal 64, Python 2.7, Anaconda 4.2.0, 5.1.0 IPythonIPython-Konsole zeigt keine Ausgaben an, zeigt aber andere?
ich & durch einige multiprocessing
Tutorials arbeite traf ein Problem sofort, während in einer IPython Konsole arbeiten. Der Code unten ...
import multiprocessing
print 'hello'
def worker():
"""worker function"""
print 'Worker'
return
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
Ich erwarte ...
hello
worker
worker
worker
worker
worker
aber ich bin immer ..
hello
Warum ist die Ausgabe von der worker
Funktion nicht angezeigt in der IPython-Konsole?
EDIT: Wenn von der Anaconda-Befehlszeile ausgeführt wird, wird mit einem Syntaxfehler in der print 'Worker'
Zeile beendet, aber wenn von einer Python-Konsole ausgeführt wird, wie erwartet ausgeführt, wenn ich weiterhin die Eingabetaste drücken.
EDIT 2: Jetzt funktioniert in Anaconda Befehlsfenster (Ich hatte das falsche Python installiert). Das Problem scheint nicht nur auf diesen Code beschränkt zu sein. Jede print-Anweisung in parallelisierten Funktionen wird nicht in der IPython-Konsole angezeigt.
BT, erfordert SO 2 Zeilenumbrüche für Text in einer neuen Zeile angezeigt werden. Verwenden Sie Code-Formatierung, um das zu umgehen. – Carcigenicate
Und ich vermute, dass ich, weil das Programm endet, bevor Sie den Arbeitern eine Chance geben, zu drucken. – Carcigenicate
Sie können dies testen, indem Sie verhindern, dass das Programm irgendwie beendet wird, etwa indem Sie den Benutzer nach dem Starten der Jobs nach Eingabe fragen. – Carcigenicate