2014-09-23 33 views
2

我有一個問題。python multiprocessing.Process執行錯誤的目標(與py2exe打包)

我在Windows7(64位)上使用python(2.7.7,32位)和py2exe(0.6.9)。

我的應用程序結構如下述:

from multiprocessing import Process 

def child(): 
    print "child" 

def main(): 
    print "main" 
    p = Process(target=child) 
    p.start() 
    p.join() 

if __name__ == "__main__": 
    main() 

(1)結果之前打包:

main 
child 

(2)結果打包後:

main 
main 
main 
...(forever) 

我想在包裝後得到(1)。

請告訴我如何獲得(1)包裝後。

愛。

+1

嘗試調用['multiprocessing.freeze_support()'](https://docs.python.org/2/library/multiprocessing.html#multiprocessing.freeze_support) – mata 2014-09-23 17:32:05

+0

woooo!謝謝。 – rakou1986 2014-09-23 17:43:34

回答

1

正如評論中所述,將Python腳本打包爲可執行文件以在Windows上使用時,需要致電multiprocessing.freeze_support()。這個電話應該在if __name__ == '__main__':之後纔會實際撥打main()

Link to multiprocessing.freeze docs