Python cx_freeze打包工具處理問(wèn)題思路及解決辦法
以下是在使用cx_freeze過(guò)程中遇到的問(wèn)題及解決辦法(Win7)
1.問(wèn)題描述:運(yùn)行exe,啟動(dòng)無(wú)數(shù)個(gè)主程序,導(dǎo)致系統(tǒng)無(wú)法使用
原因:在程序中使用了multiprocessing的包
解決辦法:在主文件if __name__ == "__main__":后,添加multiprocessing.freeze_support(),一定要在添加在最開(kāi)始處
2. 問(wèn)題描述:運(yùn)行后,提示在freeze_support中sys.stdout.flush處異常
原因:使用的PyQT作為界面,沒(méi)有控制臺(tái)
解決辦法:在調(diào)用multiprocessing.freeze_support()前,重定向stdout和stderr,添加:sys.stdout = io.StringIO()和 sys.stderr = io.StringIO()
3.使用shelve模塊,IDE下調(diào)試可以正常使用,打包后無(wú)法使用
原因:shelve 的 open 函數(shù)在運(yùn)行中還會(huì)裝入其它的數(shù)據(jù)庫(kù)管理模塊,無(wú)從了解還需要哪些額外的包,故在打包時(shí)就漏掉了一些必要的模塊
解決辦法:修改打包腳本,添加如下內(nèi)容:
packages = [] for dbmodule in ['dbhash', 'gdbm', 'dbm', 'dumbdbm']: try: __import__(dbmodule) except ImportError: pass else: # If we found the module, ensure it's copied to the build directory. packages.append(dbmodule) options = { 'build_exe': { 'includes': 'atexit', "packages": packages } }
4.使用inspect.getsourcelines異常OSError: could not get source code
原因:打包后,都是pyc文件,沒(méi)有源代碼,導(dǎo)致動(dòng)態(tài)獲取代碼失敗
解決辦法:將包含所需源碼的py文件打包到library.zip文件中,在‘build_exe'參數(shù)中,增加'zip_includes':['path\\source.py']
以上給大家分享了Python cx_freeze打包工具處理問(wèn)題思路及解決辦法,希望對(duì)大家有所幫助。
相關(guān)文章
Python辦公自動(dòng)化批量處理文件實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Python辦公自動(dòng)化批量處理文件實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06python?服務(wù)器批處理得到PSSM矩陣的問(wèn)題
這篇文章主要介紹了python?服務(wù)器批處理得到PSSM矩陣,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07Python使用Matplotlib模塊的pie()函數(shù)實(shí)現(xiàn)繪制餅形圖
這篇文章主要為大家詳細(xì)介紹了 Python 如何使用 Matplotlib 模塊的pie()函數(shù)繪制餅形圖,文中有詳細(xì)的代碼講解,對(duì)大家學(xué)習(xí)或工作有一定的幫助,感興趣的可以了解一下2023-11-11基于selenium及python實(shí)現(xiàn)下拉選項(xiàng)定位select
這篇文章主要介紹了基于selenium及python實(shí)現(xiàn)下拉選項(xiàng)定位select,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07python matplotlib坐標(biāo)軸設(shè)置的方法
本篇文章主要介紹了python matplotlib坐標(biāo)軸設(shè)置的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Django model 中設(shè)置聯(lián)合約束和聯(lián)合索引的方法
今天小編就為大家分享一篇Django model 中設(shè)置聯(lián)合約束和聯(lián)合索引的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08Appium+Python自動(dòng)化環(huán)境搭建實(shí)例教程
這篇文章主要介紹了Appium+Python自動(dòng)化環(huán)境搭建實(shí)例教程,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08