Вопрос
Вопрос в том, есть ли другой способ, о котором я просто не думаю, чтобы решить эти проблемы ниже, или это действительно ответ на создание аромата Python с нашими инструментами? У меня есть предложенное решение, которое решает проблемы, но это не значит, что это правильный ответ.
Проблемы
Я работаю в организации поддержки, где мы разрабатываем инструменты для поддержки нашего основного продукта. Этот продукт имеет свой собственный вид ОС, на котором он работает. У нас есть три различные проблемы, которые нужно решить в упаковке o
У версии ОС есть свои исходные двоичные файлы Python, в которые мы можем установить, но это ограничивает нас версией Python для ОС, которая изменится как отдельная команда, управляющая ОС. Ожидается, что это изменится в течение следующих 2 лет между выпусками 3.4, 3.5 и 3.6 Python - которые имеют изменения, которые влияют на библиотеки, которые мы используем последовательно, к лучшему и худшему.
Инструменты, которые мы создаем, также используются в качестве автономных инструментов на площадках без внешней связи для анализа. В настоящее время мы ограничены тем, чтобы «надеяться, что питон, который находится там, где они используют, играет хорошо».
Существуют значительные улучшения производительности в более поздних версиях Python, которыми мы хотели бы воспользоваться, и не можем без обновления до 3,6, но это лишает нас возможности использовать более старые версии из-за некоторых существенных различий в библиотека Python, которая разбивает вещи в одну и другую.
Мой оригинальный подход состоял в том, чтобы попытаться создать автономный virtualenv, который был бы перемещаемым, но чем больше я смотрел на этот код, тем больше я обнаруживал, что он просто редактирует PYTHONHOME и PATH, и если вы хотите, чтобы он был перемещаемым, у вас есть в любом случае скопировать все двоичные файлы, или это можно использовать только в том случае, если на хосте установлена версия python, для которой вы созданы. Это также имело недостаток в том, что требовалось много изменений в сценариях virtualenv, чтобы были изменены модификации shebang, пути были обновлены и т. Д., И их нужно было обновлять при каждом движении или иметь динамические shebang.
Предлагаемое решение, которое кажется неправильным
Прямо сейчас я смотрю на создание нашего собственного "аромата" питона - но это похоже на то, как если бы на обеденной вечеринке был топор, чтобы порезать морковь. Он решает все проблемы, связанные с несколькими местами, которые могут быть использованы при наличии согласованной и обновленной версии python с установленными нами инструментами, поэтому все, что нужно пользователям, это запустить скрипт, который обновляет PATH с помощью / bin, где эти вещи установлены.
Итак, вернемся к вопросу:
Есть ли другой способ, о котором я просто не думаю, чтобы решить эти проблемы, или это действительно ответ на создание аромата Python с помощью наших инструментов? Чувствую ли я это неправильно из-за неопытности, или это правильный ответ, который я должен рассмотреть?