В нашей группе мы в основном занимаемся архитектурой поисковых систем и интеграцией контента, и большая часть этой базы кода находится на Python. Все наши инструменты сборки и зависимости модулей Python находятся в системе контроля версий, поэтому их можно извлечь и загрузить среду для использования независимо от операционной системы / платформы, что похоже на подход, используемый virtualenv .
В течение многих лет мы поддерживали кодовую базу, совместимую с 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