Итак, вы закончили свою первую версию опенсорс проекта на Питоне, выложили её на Гитхаб, и даже написали честный ридми: «Требуется Python 3.10, поставьте зависимости через pip install -r requirements.txt«.
И… через какое‑то время вам звонит пользователь друг с вопросом: «Слушай, интересный проект, а как его под Windows поставить?»
Собственно, с этого момента у вас есть 3 варианта:
-
Попытаться сэкономить всем время и попробовать упаковать ваш проект в EXE‑файл через утилиты типа pyinstaller или Auto PY to EXE. Минус: при сколь‑нибудь сложных зависимостях нужно будет ковыряться довольно долго, чтобы заставить EXE заработать. Второй минус: как вы думаете, на кого ляжет почетная обязанность собирать EXE‑шники после каждого апдейта кода?
-
Попытаться объяснить другу, что такое python, GIT и как всё это поставить. Минус: возможны проблемы в отношениях с другом:))) (Вариант: поставить всё самому через дистанционный доступ, но он требует слишком много времени если
пользователейдрузей больше 5) -
Дописать под себя набор BAT‑файлов, о которых пойдет речь в статье, и которые:
-
ставят сами Python и GIT в локальную папку проекта (в стиле conda);
-
выкачивают свежую версию с Гитхаба (а также апдейтят её при необходимости);
-
ставят нужные зависимости;
-
можно прописать несколько сценариев запуска приложения;
-
установленный проект можно перемещать в другие папки и между компами.
-
Как я эти батники нашел
Есть такой интересный опенсорс проект, который позволяет запускать текстовые нейросети на локальном компьютере с веб‑интерфейсом: https://github.com/oobabooga/text‑generation‑webui
Проекты с нейросетями, как правило, это проекты с очень большим числом нетривиальных зависимостей. Например:
-
Вам нужно знать, нужно ли ставить версию torch с GPU ускорением от NVIDIA, или же надо ставить CPU‑версию.
-
Часто нужно скачивать какие‑то кастомные дополнительные Github‑проекты библиотеки.
-
Надо ставить нетривиальные версии библиотек (проект выше, например, использует кастомную сборку bitsandbytes под Windows, которая позволяет запускать 4-битные нейросети, требующие меньше памяти)
И я был сильно удивлен, когда нашел проект от того же пользователя под названием one‑click‑installers, который решал все эти проблемы установки буквально в несколько BAT‑файлов.
Собственно, я его установил (все заработало с первого раза), разобрался в BAT‑файлах, и они меня так впечатлили своей компактностью, что я даже достаточно быстро сделал подобный компактный инсталлятор для своего голосового помощника Ирины.
Как это работает и как это настроить
В качестве базового проекта рекомендую взять мой инсталлятор, а за нетривиальными случаями обращаться к оригинальному one‑click‑installer.
Итак, есть два основных файла:
-
install.bat
-
run.bat
install делает следующее:
-
Скачивает проект micromamba (компактная замена conda). (Вначале выводится предупреждение — путь не должен содержать пробелов и нелатинских букв/цифр.)
-
Устанавливает указанные пакеты (в частности, я указываю python3.10 и git; в моем BAT‑файле есть еще выбор, установить ли тяжелый torch для Silero TTS, но вы можете этот выбор убрать) в installer_files.
-
Активирует окружение
-
Если репозитория вашего проекта ещё не существует — клонирует его с Гитхаба; если уже существует — пытается обновить с помощью git pull.
-
Устанавливает или обновляет зависимости через
call python -m pip install -r requirements.txt --upgrade. (У меня используются кастомные зависимости в call python ‑m pip install ‑r requirements_exe_runner.txt ‑upgrade, так что не забудьте поправить для своего проекта)
Собственно, после install в идеале наш проект полностью готов к работе.
run предельно простой:
-
Он инициализирует окружение с нужными зависимостями
-
Запускает нужный питон‑файл через
call python run.py(или что вы там укажете)
Также в проекте существует micromamba‑cmd.bat, который позволяет в интерактивном режиме зайти в текущее окружение и что‑то там подправить (например, поставить новые зависимости ручками если сильно нужно).
Переносимость
Установка переносимая; но после переноса в другое место будет выдавать ошибку «Micromamba not found» — потому что сформированные BAT‑файлы Micromamba содержат абсолютные пути.
Для решения проблемы после переноса нужно удалить все BAT‑файлы из installer_files\mamba\condabin и запустить run.bat — BAT‑файлы будут перегенерированы.
Выводы
install.bat выполняет основную часть установки, ставя зависимости через Интернет, позволяет быстро обновлять проект до последней Git‑версии, и занимает всего 90 строк кода.
Вот я с ним поработал и могу сказать — поправить его под свой проект занимает где‑то полчаса‑час (ну, вместе с тестированием мелочей, конечно).
По‑моему, очень удобно.
ссылка на оригинал статьи https://habr.com/ru/articles/728846/
Добавить комментарий