作者localhostphp (A動動)
看板Python
標題[問題] 多執行緒的script能否打包成exe??
時間Fri Dec 30 14:44:59 2011
小弟我遇到一個很奇怪地問題
我將一個程式加上多執行緒的功能 (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