Сначала позвольте мне объяснить текущую ситуацию:
У нас есть несколько python
приложений, которые зависят от пользовательских (не общедоступных) пакетов, а также от общеизвестных пакетов. Все эти зависимости установлены при установке system python
. Распространение приложения осуществляется через git
по источнику. Все эти компьютеры скрыты внутри корпоративной сети и не имеют доступа в Интернет.
Этот подход немного затруднителен, поскольку он имеет следующие недостатки:
- Библиотеки должны быть установлены вручную на каждом компьютере :(
Как лучше развернуть приложение? Недавно я видел virtualenv
, который кажется решением, но я его пока не вижу.
virtualenv
создает чистый python instance
для моего приложения. Как именно я должен развернуть это, чтобы пользователи программного обеспечения могли легко его запустить?
Должен ли быть сценарий запуска внутри приложения, который создает virtualenv
во время запуска?
Следующая проблема заключается в том, что компьютеры не имеют доступа в Интернет. Я знаю, что могу указать собственное местоположение для пакетов (сетевой ресурс?), но правильный ли это подход? Или я должен также развернуть заархивированные пакеты?
Будет ли другим подходом отправлять весь экземпляр Python? Таким образом, пользователю не нужно запускать virutalenv
? В этом экземпляре Python все необходимые пакеты будут предварительно установлены.
Поскольку наши приложения быстро растут, у нас короткий цикл выпуска (2 недели). Развернуть через git
было очень просто. Пользователи могут получить последний релиз из ветки stable
с помощью сценария обновления — возможно ли это, или есть лучшие подходы?
Я знаю, что вопросов много. Надеюсь, кто-нибудь ответит мне или даст мне несколько советов.