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

StackOverflow https://stackoverflow.com/questions/47198

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

from __future__ import *

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

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

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

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

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

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

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

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

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

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

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

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

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

Вы должны использовать Питон 2.7, последняя основная версия Python 2.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top