溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用python多進(jìn)程程序打包成exe

發(fā)布時(shí)間:2022-12-27 16:25:01 來(lái)源:億速云 閱讀:131 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了怎么使用python多進(jìn)程程序打包成exe的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇怎么使用python多進(jìn)程程序打包成exe文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

部分的多進(jìn)程代碼

if __name__ == '__main__':
    """"流程模擬"""
    multiprocessing.freeze_support() # 打包成exe時(shí),需要該語(yǔ)句,防止系統(tǒng)無(wú)限創(chuàng)建子線程
    print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主進(jìn)程] - 程序已啟動(dòng)")
    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)前為單線程爬取,時(shí)間間隔為{INTERVAL}秒")

    init_data_queue = multiprocessing.Queue()       # 從數(shù)據(jù)庫(kù)里取出來(lái)的需要爬取的url等信息
    result_data_queue = multiprocessing.Queue()     # 爬取的結(jié)果
    wait_to_insert_queue = multiprocessing.Queue()  # 等待寫入數(shù)據(jù)庫(kù)的數(shù)據(jù) 已經(jīng)去重 符合insert的格式要求

    p1 = multiprocessing.Process(target=get_remote_data, args=(init_data_queue, wait_to_insert_queue), name='[數(shù)據(jù)庫(kù)交互進(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)程] - 錯(cuò)誤信息: {e}")

程序打包成exe文件后,啟動(dòng)時(shí)會(huì)瘋狂創(chuàng)建子進(jìn)程,程序來(lái)回在if WORKERS > 0:這行代碼中執(zhí)行,即無(wú)法正常工作,還會(huì)導(dǎo)致電腦逐漸卡死。解決的辦法為:在程序入口前,加入multiprocessing.freeze_support()即可解決此事。值得注意的時(shí),該語(yǔ)必須寫在if __name__ == "__main__"的下一句,如果沒(méi)有main語(yǔ)句,也會(huì)出錯(cuò)。

python的五大特點(diǎn)是什么

python的五大特點(diǎn):

1.簡(jiǎn)單易學(xué),開(kāi)發(fā)程序時(shí),專注的是解決問(wèn)題,而不是搞明白語(yǔ)言本身。

2.面向?qū)ο?,與其他主要的語(yǔ)言如C++和Java相比, Python以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?/p>

3.可移植性,Python程序無(wú)需修改就可以在各種平臺(tái)上運(yùn)行。

4.解釋性,Python語(yǔ)言寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序。

5.開(kāi)源,Python是 FLOSS(自由/開(kāi)放源碼軟件)之一。

關(guān)于“怎么使用python多進(jìn)程程序打包成exe”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“怎么使用python多進(jìn)程程序打包成exe”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI