Я пишу python приложений для внутреннего пользования в моей компании. У всех на компьютере установлено python, но они не разработчики, поэтому клонирование репо или создание venv выходит за рамки их навыков. Я надеялся изменить свои приложения, чтобы они могли обновляться, когда я sh обновляю репо git на общем сетевом диске. Я хотел бы обновить код приложения, а также зависимости, установленные в каждой из его виртуальных сред.
Я думал обернуть свое приложение в некоторый код, который перед импортом любой из зависимостей:
- Проверяет, существует ли venv
- , если его нет , создает один с использованием локальных требований. Если это так, то использует локальный файл require.txt
- , пропускает этот шаг
- Проверяет, является ли тег версии репо git более новым, чем локальный git тег версии репо
- Если доступна более свежая версия, он будет извлечен из основного репо. Репозиторий будет содержать только код приложения и файл require.txt
- . Затем он будет
pip install --upgrade
новые или обновленные пакеты с использованием нового файла файл needs.txt
- , если более новая версия недоступна, она просто запускает приложение
Все это кажется выполнимым и не очень сложным, но я не могу не чувствовать, что я изобретать велосипед здесь. Это кажется слишком ручным и слишком частой проблемой, чтобы не было лучшего способа сделать это. Что мне не хватает? Какой лучший способ справиться с этим? Всем спасибо за помощь!