Kivy庫(kù)寫(xiě)腳本打包成exe文件log循環(huán)報(bào)錯(cuò)問(wèn)題的解決

看似是遞歸錯(cuò)誤,但是無(wú)法通過(guò)sys.setrecursionlimit
限制最大遞歸解決。
問(wèn)題本質(zhì)是日志輸出錯(cuò)誤。
方法一:保證日志輸出正確
在不關(guān)閉kivy日志模塊的情況下,必須保證kivy日志輸出暢通。kivy的日志輸出包括寫(xiě)入txt文件和輸出到屏幕的信息。用pyinstaller打包exe時(shí)習(xí)慣鍵入-w參數(shù),關(guān)閉了cmd窗口,報(bào)錯(cuò)。
使用Pyinstaller 打包的時(shí)候切記不要輸入-w參數(shù),默認(rèn)開(kāi)啟cmd窗口,可以避免日志輸出錯(cuò)誤。
方法二:直接關(guān)閉Kivy日志
kivy的日志模塊是基于python的log基礎(chǔ)庫(kù)寫(xiě)的,設(shè)置了三種模式:kivy模式,python模式,混合自定義;通過(guò)環(huán)境變量KIVY_LOG_MODE的三個(gè)對(duì)應(yīng)參數(shù)“KIVY” "PYTHON" "MIXED"來(lái)調(diào)節(jié)。默認(rèn)是第一種kivy模式,這里不贅述。如果想要關(guān)閉,只要調(diào)成"PYTHON"白板log就行。
在所有代碼最前方加入:
徹底關(guān)閉kivy日志,這時(shí)再用pyinstaller打包成exe輸入-w參數(shù),生成無(wú)窗程序,毫無(wú)問(wèn)題。

這個(gè)低級(jí)錯(cuò)誤是我偶然發(fā)現(xiàn)的,沒(méi)有發(fā)csdn的習(xí)慣,先放這里,希望對(duì)被困擾的朋友們有所幫助。