2012-11-22 16 views
6

Ich verwende Python 2.6 über Windows 7 und ich versuche zu verwenden Multi-Prozess auszuführen:py2exe mit Multiprozessing versagt die Prozesse

p = Process(target=f, args=(SOME_ARGS)) 
p.start() 
p.join() 

während ich den Code von CMD (mit dem Interpreter) funktioniert alles einwandfrei laufen, aber nachdem ich eine exe-Datei mit py2exe erstellen, schlägt die Ausführung des Prozesses mit dem folgenden Fehler:

Fehler: keine solche Option: --multiprocessing-Gabel

alle Lösungen fand ich nicht helfen . irgendwelche Ideen?

+2

möglich Duplikat [multiprocessing problem \ [pyqt, py2exe \]] (http://stackoverflow.com/questions/2073942/multiprocessing-problem-pyqt-py2exe) – Mark

+1

Nein, ich sah das und versuchte diese Lösung zu verwenden. Das Problem besteht darin, dass ein anderes "Haupt" -Fenster erscheint. Dies ist hier nicht der Fall. Das einzige, was ich habe, ist diese Fehlermeldung. –

+0

eigentlich hattest du recht .. die änderungen wurden nicht am ort gespeichert wo ich gearbeitet habe, jetzt habe ich es nochmal überprüft und es funktioniert! –

Antwort

3

Sie wissen, dass Sie eine App des Jahres 2008 verwenden? (Py2exe), Python in konstanten Verwirklichungen ist, und dann gibt Probleme mit py2exe, kann ich Ihnen eine bessere Lösung ...

Sie cxfreeze verwenden können: http://cx-freeze.sourceforge.net/

einfach, einfach, gut und verwirklichte.

Ich hoffe, das hat dir geholfen.

2

Sie benötigen einen Aufruf von multiprocessing.freeze_support(), wenn Sie ein Python-Skript in eine ausführbare Datei für Windows packen. Dieser Anruf sollte kurz danach kommen, wenn Name == 'Haupt': bevor tatsächlich main() aufrufen.

1

Hier ist a great link, die erklärt, wie Sie Ihr Multiprocessing Programm einzufrieren, um es mit py2exe funktioniert:

Das heißt, müssen Sie multiprocessing.freeze_support() direkt nach dem Aufruf zur Haupt nennen:

import multiprocessing 

if __name__ == '__main__': 
    multiprocessing.freeze_support()