[英]py2exe error handling redirection and popup
一直試圖弄清楚如何讓py2exe更優雅地處理錯誤。 基本上發生了兩件奇怪的事情:
1)關閉程序后彈出消息=>想要抑制(不顯示)此彈出窗口
2)在c:\\ Program Files \\ AppName \\ AppName.exe.log中創建日志文件(有時寫入此文件夾有權限錯誤)=>將日志重定向到c:\\ ProgramData
我想我可能只是將代碼放在錯誤的位置並且py2exe引導程序代碼在我設置它們之后觸發但我不確定。 我已經嘗試在生成錯誤日志之前正確放置此代碼,但它仍然會轉到py2exe引導它們到的地方(StdErr對象)
我的程序結構如下
src/
python/
gui/
__main__.py
主 .py
if __name__ == "__main__":
# Redirect py2exe log to somewhere else if windows
if hasattr(sys,"frozen") and sys.frozen in ("windows_exe", "console_exe"):
stdout_file = "c:\ProgramData\AppName\out.log"
stderr_file = "c:\ProgramData\AppName\err.log"
sys.stdout = open(stdout_file, "w")
sys.stderr = open(stderr_file, "w")
try:
gui = AppNameGui()
gui.main()
except:
traceback.print_exc()
這是舊帖,但仍然有人可以發現它很方便。 您可以通過設置記錄器傳播來禁用這個煩人的彈出窗口
logger.propagate = False
原因是記錄器沒有傳播輸出到控制台。 有關更多詳細信息,請查看py2exe包中的源代碼:
py2exe\boot_common.py
我有一個問題,其中一個import
錯誤就在我的文件頂部。 我必須將stdout / stderr重定向放在文件的頂部,以確保日志沒有像py2exe那樣創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.