В нашей группе мы главным образом выполняем архитектуру поисковой системы и работу по интеграции контента, и большая часть этой базы кода находится в Python. Все наши инструменты сборки и зависимости модуля Python находятся в исходном управлении, поэтому они могут быть проверены, а среда загружена для использования независимо от os/platform, что похоже на подход virtualenv.Какую версию Python (2.4, 2.5, 2.6, 3.0) вы стандартизируете для усилий по развитию производства (и почему)?
В течение многих лет мы поддерживали базу кода, совместимую с Python 2.3, потому что один из коммерческих продуктов, которые мы используем, зависит от Python 2.3. За эти годы это вызвало все больше и больше проблем, поскольку более новые инструменты и библиотеки нуждаются в более новых версиях Python, поскольку 2.3 вышел в ~ 2004 году.
Мы недавно отделили нашу среду сборки от зависимостей от среды коммерческого продукта и можем использовать любую версию Python (или Java), которую мы хотим. Прошло около месяца, так как мы стандартизировали Python 2.6 как самую новую версию Python, которая обратно совместима с предыдущими версиями.
Python 3.0 не является вариантом (на данный момент), так как нам придется перенести слишком много нашей базы кода, чтобы наши инструменты сборки и интеграции снова работали правильно.
Нам нравятся многие новые функции Python 2.6, особенно усовершенствованные модули и вещи, такие как декодеры классов, но многие модули, от которых мы зависим, заставляют интерпретатор Python 2.6 разливать различные предупреждения об амортизации. Еще один инструмент, который нам интересен для управления узлами кластера EC2, Supervisor даже не работает с Python 2.6.
Теперь мне интересно, стоит ли нам стандартизировать Python 2.5 вместо использования Python 2.6 в разработке средств производственной среды. Большинство инструментов, которые мы хотим/нуждаемся, работают корректно с Python 2.5. Мы пытаемся разобраться с этим сейчас, прежде чем существует множество зависимостей от функций или модулей Python 2.6.
Большое спасибо!
-Michael
ОК, спасибо, ребята, все ответы до сих пор были очень информативными. :) Я все еще не решил, стандартизировать ли 2.5 (наши системные администраторы предпочли бы, что из-за доступности пакета в менеджерах пакетов), но комментарии до сих пор дают мне меньше колебаний просто выставлять его на Python 2.6 и просто подавлять предупреждения где это необходимо. – Xavian
Просто обновление, мы были стандартизованы на Python 2.6 около года, и это было плавное плавание. :) – Xavian