欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python多進(jìn)程程序打包成exe的問題

 更新時間:2022年12月25日 09:17:48   作者:野生大蝦  
這篇文章主要介紹了python多進(jìn)程程序打包成exe的問題的相關(guān)資料,需要的朋友可以參考下

粘貼一下部分的多進(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)文章

最新評論