簡體   English   中英

py2exe錯誤處理重定向和彈出窗口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM