Распространение пакета python вместе с зависимостями модуля с использованием RPM
у нас есть несколько приложений на Python, состоящих из скриптов / модулей, которые должны быть упакованы и развернуты как RPM.
Более хитрый момент заключается в том, что каждое приложение должно распространяться вместе со всеми зависимостями модуля Python, и они должны использоваться в предпочтении перед всеми, которые установлены во всей системе.
Целевые хосты для некоторых из этих RPM имеют ограниченный доступ к сети, поэтому RPM должны содержать все необходимое для запуска приложения, а не загружать что-либо во время развертывания.
мы смотрели на упаковку и распространениеvirtualenv, но переезд ВиртуаленКажется, меня хорошо поддерживают.
мы смотрели наzc.buildout, но обнаружил, что документация отсутствует. Я мог видеть, как загружать зависимости во время разработки, но не как распространять их как часть более крупного приложения. Это'Возможно, для разных приложений требуются разные версии одного и того же модуля, поэтому они не должныбыть установленным по всей системе.
Другая проблема заключается в том, что любые сценарии Python в приложении необходимо изменить, чтобы использовать другой sys.path во время разработки и после развертывания.Я не вижу очевидного способа обойти это.
Есть предложения о том, как лучше всего этого достичь? Идеальное резюме рабочего процесса от разработчикаТочка зрения будет выглядеть так:
скачать исходный код приложениязапустить скрипт для извлечения определенных зависимостей модуля, если они отсутствуют (возможно, используяпип)запустить скрипт для сборки приложения Python и упаковать его и все загруженные зависимости в RPMКонечный RPM должен быть установлен и запущен на хосте без доступа к сети и только с установленным интерпретатором Python.