Я являюсь членом команды, которая собирается запустить бета-версию веб-сайта на основе python (Django) и сопутствующего набора бэкэнд-инструментов. За последние несколько лет сама команда удвоилась в размере от 2 до 4, и мы ожидаем дальнейшего роста в ближайшие пару месяцев. Одной из проблем, которая нас запугила, является то, что все ускоряются с точки зрения настройки их среды разработки и установки всех правильных яиц и т. Д.Есть ли другие хорошие альтернативы zc.buildout и/или virtualenv для установки зависимостей, отличных от python?
Я ищу способы упростить этот процесс и уменьшить его ошибка склонна. Как zc.buildout, так и virtualenv выглядят так, как если бы они были хорошими инструментами для решения этой проблемы, но оба, похоже, сосредоточены прежде всего на проблемах, связанных с python. У нас есть несколько небольших подпроектов на других языках (в частности, Java и Ruby), а также множество расширений python, которые должны быть скомпилированы изначально (lxml, MySQL-драйверы и т. Д.). Фактически, один из самых больших шипов на нашей стороне получил некоторые из этих расширений, собранных против соответствующих версий разделяемых библиотек, чтобы избежать segfaults, malloc-ошибок и всех подобных проблем. Это не помогает, что из 4 человек у нас есть 4 разных среды разработки - 1 леопард на ppc, 1 леопард на Intel, 1 ubuntu и 1 окно.
В конце концов, что было бы идеально было бы то, что работает примерно так, из командной строки DOS/UNIX:
$ мерзавца клон [URL хранилища] ... $ питон setup-env.py . ..
, который затем выполняет то, что делает zc.buildout/virtualenv (копирует/связывает интерпретатор python, обеспечивает чистое пространство для установки яиц), затем устанавливает все необходимые яйца, включая установку любых родных зависимостей разделяемой библиотеки, устанавливает проект ruby , проект java и т. д.
Очевидно, что это было бы полезно как для создания среды разработки, так и для развертывания на промежуточных серверах.
В идеале, я хотел бы получить инструмент, который выполнит это, чтобы быть написанным в/extensible через python, так как это (и всегда будет) lingua franca нашей команды, но я открыт для решений на других языках.
Итак, теперь мой вопрос: есть ли у кого-нибудь предложения по лучшим альтернативам или любому опыту, который они могут использовать, используя одно из этих решений для обработки более крупных/более широких баз установки?