Установка и запуск
English · Руководство · Справочник
Содержание
- Требования
- Запуск
- Сборка окружения
- Сборка окна
- Зависимости
- Папки проекта
- Обслуживание
- Перед большим прогоном
Проект переносимый: он не устанавливается в систему, не пишет в реестр и целиком живёт в своей папке. Скопировать папку на другую машину — достаточная «установка».
Требования
Windows. Программа рассчитана на Windows: перенос колонок по адресу и
конвертация старых .doc/.xls работают через Word и Excel.
Excel. Нужен команде «Перенести колонки по адресу»: именно через него
сохраняются формулы, оформление и порядок строк основной книги. Word — только
конвертации .doc. Остальные команды без них работают.
Интернет. Нужен один раз для сборки окружения и потом изредка — для скачивания реестра ОКТМО.
Собранный portable-проект ничего больше не требует: окно лежит в App\ вместе со
своей средой .NET, Python — в папке runtime. Ставить .NET или PowerShell на
машину не нужно.
Запуск
| Способ | Что делает |
|---|---|
Start.exe |
Открыть окно программы |
App\AudionAddressProcessor.exe |
То же самое напрямую |
address_cli.cmd |
Консольная команда: те же операции без окна (см. Справочник) |
builder_main.cmd |
Сборка portable-окружения |
Start.exe запускает App\AudionAddressProcessor.exe и отходит в сторону. Второй
запуск из той же папки не открывает второе окно, а выводит первое вперёд.
Окно находит папку программы по своему расположению (App\ лежит в корне) и
вызывает движок Python из runtime\: runtime\python.exe, затем
runtime\python\python.exe. Все операции идут отдельным процессом, поэтому СТОП и
закрытие окна не оставляют за собой ни Python, ни Excel, ни Word.
Настройки окна лежат в config\window_settings.json (размер, язык, тема, размер
шрифта), история путей — в config\path_history.json. Окно при первом запуске
открывается на русском; английский включается кнопкой EN и запоминается.
Если окно не открылось
Частые причины:
- Нет
App\.Start.exeговорит, чем её собрать:install\Build-App.cmd. - Окружение не собрано. Окно открывается, но в журнале написано, что нет
Python проекта, и операции не запускаются — соберите окружение
(
builder_main.cmd, шаг[01]или[02]). - Окно упало. Подробности записаны в
logs\gui-crash-ВРЕМЯ.log, ход дня — вlogs\gui-ДАТА.log.
Проверить связку «окно — команда — манифест» без показа окна:
App\AudionAddressProcessor.exe --self-check=check.json
Окно строит все разделы, сверяет их с манифестом и пишет в файл, сколько операций и полей нарисовано; код выхода 0 — всё на месте.
Сборка окружения
Нужна только если вы получили проект без папки runtime или пересобираете его.
Сборка обновляет компоненты — Python и пакеты; окно (App\) она не трогает.
builder_main.cmd — меню сборки:
| Пункт | Что делает |
|---|---|
[01] PYTHON ENV CMD |
Собрать portable-окружение (основной путь) |
[02] PYTHON ENV PS |
То же через PowerShell программы (App\AudionPs.exe) |
[05] WINDOW |
Пересобрать App\ из Source\ — только после правки исходников окна |
[09] PORTABLE OFFLINE |
Установка из локального wheelhouse без сети |
[70] CLEAN INSTALL CACHE |
Очистить кэш сборки и остатки сборки окна; собранные runtime и App\ остаются |
[71] VERIFY / DOCTOR |
Проверить окружение, консольную команду и собранное окно |
Установка без интернета
Если в проекте есть папка wheelhouse с колёсами зависимостей, окружение
собирается из неё: install\install_portable_offline.cmd или пункт
[09] PORTABLE OFFLINE.
Проверка
[71] VERIFY / DOCTOR — или install\verify_portable_env.cmd — проверяет
интерпретатор и импорт всех зависимостей, что консольная команда читает манифест,
что Start.exe и App\ на месте и что окно рисует каждую операцию и каждое поле
манифеста. Это первое, что стоит запустить, если что-то не работает.
Сборка окна
Окно — программа на Avalonia 12 и .NET 10, исходники в Source\. Собранное окно
лежит в App\ и едет в выпуск готовым, поэтому обычная сборка окружения его не
пересобирает.
Пересобирать нужно после правки Source\ или когда манифест получил что-то,
чего окно ещё не умеет рисовать:
install\Build-App.cmd
Нужен .NET 10 SDK. Скрипт прогоняет проверки окна (tests\test_window_avalonia.py),
собирает окно и свой PowerShell AudionPs.exe, проверяет собранное (--self-check) и
только тогда заменяет App\: неудачная сборка оставляет прежнюю работающую копию.
Номер берётся из config\version.json.
Start.exe собирается отдельно: install\Build-StartLauncher.cmd.
Зависимости
| Пакет | Зачем |
|---|---|
pandas |
Табличные операции |
openpyxl |
Чтение и запись XLSX |
rapidfuzz |
Приблизительное сравнение названий улиц |
pymorphy3, pymorphy3-dicts-ru |
Падежные формы названий населённых пунктов |
PyMuPDF |
Текстовый слой PDF |
pywin32 |
Работа с Excel и Word |
pyyaml |
Манифест и файлы настроек |
tqdm |
Ход длинных стадий |
setuptools, wheel, packaging |
Сборка окружения |
pytest |
Тесты |
Окно от пакетов Python не зависит. Тексты лицензий всех сторонних компонентов
лежат в licenses/.
Папки проекта
| Папка | Что в ней | Можно чистить |
|---|---|---|
App |
Собранное окно и свой PowerShell | Нет, пересобирается из Source |
Source |
Исходники окна | Нет |
system_core |
Исходный код движка и консольной команды | Нет |
config |
Настройки, манифест, раскладка окна, ключи и пины ОКТМО | Нет |
data |
Реестр ОКТМО и справочник регионов | Реестр скачивается заново |
runtime |
Portable Python | Пересобирается |
wheelhouse |
Колёса для офлайн-установки | Да |
input |
Исходные файлы | Да |
output |
Результаты | Да |
report |
Отчёты прогонов | Да |
logs |
Журналы операций и окна | Да |
workspace |
Промежуточные файлы | Да |
release |
Архивы результатов | Да |
docs |
Документация | Нет |
licenses |
Лицензии сторонних компонентов | Нет |
tests |
Тесты | Нет |
Первичное создание рабочих папок — install\init_folders.cmd.
Обслуживание
Очистка проекта. cleanup_project.cmd удаляет наработанные артефакты:
кэши, временные конвертации, журналы, отчёты, снимок Росстата data\rosstat (он
скачивается заново) и пересобираемые runtime и wheelhouse. Код, настройки,
документация, исходники, собранное окно App\ и утверждённые эталоны
сохраняются. Внимание: очистка опустошает и input, и output — сначала
заберите оттуда нужное.
Кодировка CMD-файлов. После правки любого .cmd запускайте
install\Check-CmdEncoding.cmd: файлы должны остаться UTF-8 без BOM с
переносами CRLF. Иначе кириллица в меню превратится в мусор.
Обновление зависимостей. install\Update-Requirements-Lock.cmd
перегенерирует lock-файл.
Реестр ОКТМО обновляется не отсюда, а кнопкой в окне — см. ОКТМО.
Перед большим прогоном
Проверьте окружение (VERIFY / DOCTOR), работайте с копиями важных таблиц и
держите источники, эталон и результаты в разных папках.
Первый прогон на новом наборе данных делайте на десятке строк, ответ для которых известен заранее.