看板 Python 關於我們 聯絡資訊
小弟我遇到一個很奇怪地問題 我將一個程式加上多執行緒的功能 (multiprocessing 內的pool ) 直接執行.py檔案可以正常執行也能跑出正常結果 用pyinstaller將其打包成exe後可以正常執行 但是大概在pool.get的地方就整個跳出回圈(我沒設定會跳出回圈) 然後無限的循環 部份程式碼如下 for x in xxx: result = pool.apply_async(...........) myThread.append(result) for poolget in myThread: print "test" realResult=poolget.get() if len(realResult)!=0: Result2.append(realResult) 在exe執行後 test只會出現一次 .py的時候則不會有問題 想請問一下是什麼情況會造成這樣的問題??? 抓BUG抓了很久只好上來求救了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 192.83.177.63
localhostphp:已解決 12/31 03:02
localhostphp:if __name__ == '__main__': 後面加上 12/31 03:03
localhostphp:multiprocessing.freeze_support() 即可 12/31 03:03
localhostphp:pyinstaller 本身也有問題 改用cx_Freeze 就OK了 12/31 03:04