/
DimerTrue
/
ecg_gui
Обзор
Документация
Войти
/
DimerTrue
/
ecg_gui
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
utils/path_utils.py
43 строки
2 KB
dimer
fix ui bugs; feat: add unit tests modbus
27 июл 2026, 18:01
27 июл 2026, 18:01
b5f0b34
Код
Авторство
О чём код?
# path_utils.py import sys import os def resource_path(relative_path): """ Получить путь к ресурсам, работающий в скомпилированном приложении. Поддерживает: разработка, Nuitka standalone, Nuitka onefile, PyInstaller """ # Проверяем, запущено ли приложение как скомпилированное if getattr(sys, "frozen", False): # Для Nuitka onefile - файлы внутри временной папки if hasattr(sys, "_MEIPASS"): # PyInstaller или старые версии Nuitka base_path = sys._MEIPASS else: # Nuitka onefile - используем __file__ для получения временной папки # __file__ указывает на main.py внутри временной папки base_path = os.path.dirname(os.path.abspath(__file__)) # Если мы в корне временной папки, то assets должны быть рядом # Проверяем, есть ли assets рядом с __file__ test_path = os.path.join(base_path, "assets") if not os.path.exists(test_path): # Может быть на уровень выше base_path = os.path.dirname(base_path) else: # Режим разработки base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) full_path = os.path.join(base_path, relative_path) # Для отладки (можно удалить после проверки) if not os.path.exists(full_path): print(f"WARNING: Resource not found: {full_path}") print(f"Base path: {base_path}") print(f"sys.frozen: {getattr(sys, 'frozen', False)}") if hasattr(sys, "_MEIPASS"): print(f"_MEIPASS: {sys._MEIPASS}") print(f"__file__: {__file__}") return full_path