Какую версию Python использовать для максимальной совместимости - PullRequest
15 голосов
/ 06 сентября 2008

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

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

Ответы [ 6 ]

6 голосов
/ 06 сентября 2008

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

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

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

4 голосов
/ 06 сентября 2008

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

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

from __future__ import *
1 голос
/ 07 сентября 2008

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

2.4 добавлены декораторы. выражения генератора, reversed (), sorted (), а также подпроцесс и десятичные модули. Хотя все это неплохо, без них легко написать 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.

1 голос
/ 06 сентября 2008

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

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

Для окон, не беспокойтесь об этом. Это очень легко установить Python2,5 MSI.

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

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

0 голосов
/ 08 октября 2011

Вы должны использовать 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.)

0 голосов
/ 10 января 2010

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

В любом случае, любая современная ОС будет / может иметь 2,4 или более новую версию.

...