#!/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)