Пробовал выяснять, как получить py2exe для обработки ошибок более изящно. Есть в основном 2 странные вещи происходят:перенаправление обработки ошибок py2exe
1) Всплывающее сообщение после закрытия программы => хотите подавить (не появляются) это всплывающее окно
- Используйте попробовать/за исключением => не работает
- http://osdir.com/ml/python.py2exe/2006-09/msg00016.html
- Не уверен, куда поместить этот код
2) Файл журнала получение создан в C: \ Program Files \ AppName \ AppName.exe.log (иногда с ошибками разрешения писать в эту папку) => перенаправляют журнал в C: \ Programdata
- Использование sys.stdout и sys.stderr => не работает
- http://www.dreamincode.net/forums/topic/234318-py2exe-do-not-show-errors-occurred-prompt-to-user/
- не знаете, куда поместить этот код
Я имею в виду, что я могу просто помещать код в неправильном месте и py2e xe bootstrap code стреляет ПОСЛЕ Я установил их, но я не уверен. Я пытался поставить этот код прямо перед журналом ошибок генерации, но он все еще идет туда, где 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()