Какую версию Python использовать для максимальной совместимости

Если бы я собирался запустить проект с открытым исходным кодом с использованием Python, какую версию мне следует использовать, чтобы подавляющее большинство пользователей могло использовать его в своей системе?

Я из тех, кто быстро переходит к следующей версии (что я и сделаю, когда выйдет Python 3), но многие люди могут быть более консервативными, если их текущая версия, кажется, работает нормально. Какая версия понравится мне, но при этом позволит мне пользоваться новейшими и самыми крутыми языковыми улучшениями?


person Cristian    schedule 06.09.2008    source источник


Ответы (6)


Поскольку python является своего рода переходной фазой к python 3 с нарушением обратной совместимости, я не думаю, что использовать только python 3 - хорошая идея. На основе временной шкалы будет как минимум один или два следующие выпуски серии 2.x после 2.6 / 3.0 в октябре.

Помимо того, что на ваших целевых платформах нет доступного Python 3, потребуется некоторое время, пока важные внешние библиотеки Python не будут портированы и можно будет использовать на Python 3.

Так как Мэтью предлагает оставаться на уровне 2,4 / 2,5 и сохранить переход план на Python 3 - хороший выбор.

person Peter Hoffmann    schedule 06.09.2008
comment
Мне интересно, что по состоянию на июль 2010 года в основном верно то же самое, и что ничего не изменилось. Возможно, выпуск 2.7 станет новым советом. - person Warren P; 10.07.2010

Некоторое время я не видел системы с установленной менее 2.3. В основном 2.4+ устанавливается по умолчанию для большинства ОС, которые я использую сейчас. 2.3 есть только на более старой машине Solaris. Дистрибутивы Linux, как правило, имеют версию 2.4+, как и OS X.

IIRC, 2.4 имеет много функций 2.5, но может использоваться только с

from __future__ import *
person Matthew Schinckel    schedule 06.09.2008

Вы можете использовать разные версии python на каждой машине.

Кодируя что-то новое, я бы не использовал ничего, кроме python2.5. Вы можете сделать apt-get install python2.5 на стандартной стабильной версии debian.

Что касается окон, особо не беспокойтесь об этом. Установить python2.5 msi очень просто.

Если пользователей это не беспокоит, вы можете развернуть исполняемый файл с помощью py2exe (так просто) и создать установщик с настройкой inno (опять же просто), тогда он будет вести себя как стандартное приложение Windows и будет использовать свои собственные библиотеки DLL python. , поэтому устанавливать python не нужно.

Как сказал Питер: помните о переходе на 3.0, но пока не зацикливайтесь на нем.

person Christopher Mahan    schedule 06.09.2008

Python 2.3 или 2.2, если вы можете жить без множества добавленных модулей (например, datetime, csv, logging, optparse, zipimport), не используют SSL и готовы добавить шаблон для True / False.

2.4 добавлены декораторы. выражения генератора, reversed (), sorted (), а также модули subprocess и decimal. Хотя все они хороши, легко написать код Pythonic без них (при условии, что ваш проект не будет их интенсивно использовать).

2.5 добавлен с относительным импортом, улучшенной поддержкой 64-битной версии и довольно большой скоростью. Вы можете легко прожить без всего этого.

2.6 не выпущен (хотя он очень близок), поэтому, хотя он может понравиться разработчикам, у него нет той совместимости, которая вам нужна.

Ознакомьтесь с примечаниями к выпуску 2.3, 2.4, 2.5 и будущей версии 2.6 (используйте http://www.python.org/download/releases/2.Y/highlights/, где Y - второстепенная версия).

FWIW, для SpamBayes мы поддерживаем 2.2 и выше (2.2 требует отдельной установки пакета электронной почты). Это не слишком обременительно, но дополнения 2.3 достаточно полезны, а 2.3 достаточно устарели, так что мы, вероятно, скоро выпустим 2.2.

person Tony Meyer    schedule 07.09.2008

Если проект будет массовым и будет запускаться в Linux, единственный разумный выбор - 2.4 - просто потому, что сложно установить что-либо еще по умолчанию в Enterprise Linux.

В любом случае любая современная ОС будет иметь версию 2.4 или новее.

person Kimvais    schedule 10.01.2010

Вам следует использовать Python 2.7, последнюю основную версию Python 2.

Python 3.x в настоящее время имеет ограниченную поддержку сторонних библиотек и часто не устанавливается по умолчанию. Итак, вы смотрите на серию 2.x.

Python 2.7 по сути полностью обратно совместим с более ранними версиями 2.xs. Кроме того, он может выдавать предупреждения об устаревании о вещах, которые не будут работать в Python 3. (В частности, он будет платить за поддержку модульных тестов и педантичный подход к Unicode- и байтовым строкам.) Предупреждения заставят вас напишите хороший код, который автоматизированный инструмент 2to3 сможет перевести на Python 3.

Гвидо ван Россум официально рекомендует поддерживать единую кодовую базу Python 2 и использование 2to3 вместе с модульным тестированием для создания совместимых выпусков для Python 2 и 3. (С момента написания PEP 3000 Python 2.6 был заменен на 2.7.)

person Mechanical snail    schedule 08.10.2011