python多進(jìn)程程序打包成exe的問題
粘貼一下部分的多進(jìn)程代碼
if __name__ == '__main__': """"流程模擬""" multiprocessing.freeze_support() # 打包成exe時,需要該語句,防止系統(tǒng)無限創(chuàng)建子線程 print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主進(jìn)程] - 程序已啟動") if WORKERS > 0: print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主進(jìn)程] - 當(dāng)前為并發(fā)爬取,每次采集{WORKERS}條url") else: print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主進(jìn)程] - 當(dāng)前為單線程爬取,時間間隔為{INTERVAL}秒") init_data_queue = multiprocessing.Queue() # 從數(shù)據(jù)庫里取出來的需要爬取的url等信息 result_data_queue = multiprocessing.Queue() # 爬取的結(jié)果 wait_to_insert_queue = multiprocessing.Queue() # 等待寫入數(shù)據(jù)庫的數(shù)據(jù) 已經(jīng)去重 符合insert的格式要求 p1 = multiprocessing.Process(target=get_remote_data, args=(init_data_queue, wait_to_insert_queue), name='[數(shù)據(jù)庫交互進(jìn)程]') p2 = multiprocessing.Process(target=scrapy_wechat, args=(init_data_queue, result_data_queue), name='[爬蟲進(jìn)程]') p3 = multiprocessing.Process(target=make_data, args=(result_data_queue, wait_to_insert_queue), name='[數(shù)據(jù)處理進(jìn)程]') try: p1.start() p2.start() p3.start() except Exception as e: print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主進(jìn)程] - 錯誤信息: {e}")
程序打包成exe文件后,啟動時會瘋狂創(chuàng)建子進(jìn)程,程序來回在if WORKERS > 0:
這行代碼中執(zhí)行,即無法正常工作,還會導(dǎo)致電腦逐漸卡死。解決的辦法為:在程序入口前,加入multiprocessing.freeze_support()
即可解決此事。值得注意的時,該語必須寫在if __name__ == "__main__"
的下一句,如果沒有main語句,也會出錯。
到此這篇關(guān)于python多進(jìn)程程序打包成exe的問題的文章就介紹到這了,更多相關(guān)python打包成exe內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyTorch、torchvision和Python版本的對應(yīng)關(guān)系
使用PyTorch時,選擇合適的Python版本是至關(guān)重要的,錯誤的版本組合可能導(dǎo)致各種兼容性問題,本文就來介紹一下PyTorch、torchvision與Python版本匹配,感興趣的可以了解一下2024-03-03pyv8學(xué)習(xí)python和javascript變量進(jìn)行交互
這篇文章主要介紹了pyv8學(xué)習(xí)python和javascript變量進(jìn)行交互,python取得javascript里面的值、javascript取得python里面的值、python和javascript里面的函數(shù)交互2013-12-12python OpenCV的imread不能讀取中文路徑問題及解決
這篇文章主要介紹了python OpenCV的imread不能讀取中文路徑問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Django調(diào)用百度AI接口實現(xiàn)人臉注冊登錄代碼實例
這篇文章主要介紹了Django調(diào)用百度AI接口實現(xiàn)人臉注冊登錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04python selenium對應(yīng)的瀏覽器chromedriver版本不一致問題
這篇文章主要介紹了python selenium對應(yīng)的瀏覽器chromedriver版本不一致問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Django 如何使用日期時間選擇器規(guī)范用戶的時間輸入示例代碼詳解
這篇文章主要介紹了 Django 如何使用日期時間選擇器規(guī)范用戶的時間輸入,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05