Files
prog1764 4451e3f914 fix: окно редактора — главное (не Toplevel), лог ошибок в importmapper_error.log
Раньше root прятался (withdraw), а редактор открывался Toplevel —
на Windows окно могло не появиться. Теперь редактор строится прямо
на главном окне. Ошибки запуска пишутся в importmapper_error.log.
2026-08-03 10:23:16 +04:00

64 lines
1.8 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""ImportMapper — универсальный редактор импорта из Excel-опросников.
Запуск:
python3 main.py (или: py main.py)
При ошибке запуска подробности пишутся в файл importmapper_error.log
рядом с этой программой — можно прислать его содержимое.
"""
import sys
import os
import traceback
HERE = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, HERE)
LOG_PATH = os.path.join(HERE, 'importmapper_error.log')
def _write_log(msg: str):
try:
with open(LOG_PATH, 'w', encoding='utf-8') as f:
f.write(msg)
except Exception:
pass
def main():
import tkinter as tk
from editor import ImportMapperWindow
root = tk.Tk()
# Окно редактора строится прямо на root (главное окно)
ImportMapperWindow(root)
root.mainloop()
if __name__ == "__main__":
try:
main()
except Exception as e:
msg = f"{type(e).__name__}: {e}\n\n{traceback.format_exc()}"
# Пишем в файл-лог и в консоль
_write_log(msg)
try:
print("ОШИБКА ЗАПУСКА ImportMapper:")
print(msg)
except Exception:
pass
# Пытаемся показать окно с ошибкой
try:
import tkinter as tk
from tkinter import messagebox
r = tk.Tk()
r.withdraw()
messagebox.showerror("Ошибка запуска ImportMapper",
"Подробности в файле:\n" + LOG_PATH + "\n\n" + str(e))
r.destroy()
except Exception:
pass
sys.exit(1)