ما هو إصدار Python الذي يجب استخدامه لتحقيق أقصى قدر من التوافق؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

إذا كنت سأبدأ مشروعًا مفتوح المصدر باستخدام Python، فما هو الإصدار الذي يجب أن أستخدمه لضمان أن الغالبية العظمى من المستخدمين يمكنهم استخدامه على أنظمتهم؟

أنا من النوع الذي ينتقل بسرعة إلى الإصدار التالي (وهو ما سأفعله عندما يصدر Python 3) ولكن قد يكون العديد من الأشخاص أكثر تحفظًا إذا بدا أن الإصدار الحالي الخاص بهم يعمل بشكل جيد.ما هو الإصدار الذي سيحقق نجاحًا كبيرًا ولكنه لا يزال يسمح لي بالاستمتاع بأحدث وأروع التحسينات اللغوية؟

هل كانت مفيدة؟

المحلول

نظرًا لأن python في مرحلة انتقالية نحو python 3 مع كسر التوافق مع الإصدارات السابقة، فلا أعتقد أنه من الجيد الانتقال إلى python 3 فقط.على أساس الجدول الزمني سيكون هناك إصدار واحد أو إصدارين على الأقل من سلسلة 2.x بعد 2.6/3.0 في أكتوبر.

إلى جانب عدم توفر 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 *

يمكنك استخدام إصدارات مختلفة من لغة بايثون على كل جهاز.

عند برمجة شيء جديد، لن أستخدم أي شيء أقل من python2.5.يمكنك ان تفعل apt-get install python2.5 على مخزون ديبيان مستقر.

بالنسبة للنوافذ، لا تقلق بشأن ذلك حقًا.من السهل جدًا تثبيت python2.5 msi.

إذا لم يكن من الممكن إزعاج المستخدمين للقيام بذلك، فيمكنك نشر ملف قابل للتنفيذ باستخدام py2exe (بسيط جدًا) وإنشاء برنامج تثبيت باستخدام إعداد inno (مرة أخرى بسيط) ثم سيتصرف مثل تطبيق Windows القياسي وسيستخدم ملفات python dlls الخاصة به ، لذلك لا حاجة لتثبيت بايثون.

كما قال بطرس:ضع في اعتبارك الانتقال إلى الإصدار 3.0 ولكن لا تقم بالبناء عليه بعد.

Python 2.3 أو 2.2 إذا كان بإمكانك العيش بدون الوحدات العديدة التي تمت إضافتها (على سبيل المثال.datetime، وcsv، وlogging، وoptparse، وzipimport)، لا يستخدمون SSL، وهم على استعداد لإضافة نموذج معياري لـ True/False.

2.4 الديكور المضافة.تعبيرات المولدات، وreverse()، وsorted()، والعملية الفرعية والوحدات العشرية.على الرغم من أن كل هذه الأشياء جميلة، إلا أنه من السهل كتابة تعليمات برمجية بايثونية بدونها (بافتراض أن مشروعك لن يستخدمها بكثرة).

تمت إضافة الإصدار 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 قبل فترة طويلة.

إذا كان المشروع سيصبح سائدًا وسيتم تشغيله على Linux، فإن فقط الاختيار المعقول هو 2.4 - فقط لأنه من الصعب تثبيت أي شيء آخر كإعداد افتراضي على Enterprise Linux.

في أي حال، أي حديث نظام التشغيل سوف/يمكن أن يحتوي على 2.4 أو أحدث.

يجب عليك استخدام بايثون 2.7, ، الإصدار الرئيسي الأخير من بايثون 2.

يتمتع الإصدار Python 3.x حاليًا بدعم محدود من مكتبة الجهات الخارجية، وغالبًا ما لا يتم تثبيته افتراضيًا.إذن أنت تنظر إلى سلسلة 2.x.

Python 2.7 متوافق تمامًا مع الإصدارات السابقة 2.xs.بالإضافة إلى ذلك، يمكن أن يعطي تحذيرات بشأن الأشياء التي لن تعمل في Python 3.(على وجه الخصوص، سيكون من المفيد الحفاظ على اختبارات الوحدة، والتحذلق بشأن Unicode مقابل Unicode.byte-strings.) ستجبرك التحذيرات على كتابة تعليمات برمجية جيدة يمكن تشغيلها تلقائيًا 2to3 ستكون الأداة قادرة على الترجمة إلى Python 3.

جويدو فان روسوم توصي رسميًا بالحفاظ على قاعدة تعليمات برمجية واحدة لـ Python 2, واستخدام 2to3 مع اختبار الوحدة لإنتاج إصدارات متوافقة مع Python 2 و3.(منذ كتابة PEP 3000، تم استبدال Python 2.6 بـ 2.7.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top