您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么使用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):
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è)資訊頻道。
免責(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)容。