إصدار PyOxidizer لتعبئة مشاريع Python في ملفات تنفيذية قائمة بذاتها

مقدم من الإصدار الأول من الأداة المساعدة بيووكسيدايزر، والذي يسمح لك بحزم مشروع في بايثون في شكل ملف قابل للتنفيذ قائم بذاته، بما في ذلك مترجم بايثون وجميع المكتبات والموارد اللازمة للعمل. يمكن تنفيذ مثل هذه الملفات في بيئات بدون تثبيت أدوات Python أو بغض النظر عن الإصدار المطلوب من Python. يمكن لـ PyOxidizer أيضًا إنشاء ملفات قابلة للتنفيذ مرتبطة بشكل ثابت وغير مرتبطة بمكتبات النظام. كود المشروع مكتوب بلغة Rust و وزعت من خلال مرخص بموجب MPL (رخصة Mozilla العامة) 2.0.

يعتمد المشروع على وحدة لغة Rust التي تحمل الاسم نفسه، والتي تسمح لك بتضمين مترجم Python في برامج Rust لتشغيل نصوص Python النصية فيها. لقد تجاوز PyOxidizer الآن كونه مجرد وظيفة إضافية لـ Rust ويتم وضعه كأداة لبناء وتوزيع حزم Python القائمة بذاتها على جمهور أوسع. بالنسبة لأولئك الذين لا يحتاجون إلى توزيع التطبيقات كملف قابل للتنفيذ، يوفر PyOxidizer القدرة على إنشاء مكتبات مناسبة للربط مع أي تطبيق لتضمين مترجم Python ومجموعة الامتدادات الضرورية.

بالنسبة للمستخدمين النهائيين، يؤدي تسليم المشروع كملف واحد قابل للتنفيذ إلى تبسيط التثبيت إلى حد كبير ويلغي الحاجة إلى تحديد التبعيات، وهو أمر مهم، على سبيل المثال، لمشاريع Python المعقدة مثل برامج تحرير الفيديو. بالنسبة لمطوري التطبيقات، يتيح لك PyOxidizer توفير الوقت في تنظيم تسليم التطبيقات، دون الحاجة إلى استخدام أدوات مختلفة لإنشاء حزم لأنظمة تشغيل مختلفة.

استخدام التجميعات المقترحة له أيضًا تأثير إيجابي على الأداء - فالملفات التي تم إنشاؤها في PyOxidizer تعمل بشكل أسرع من استخدام نظام Python بسبب إلغاء استيراد وتعريف الوحدات الأساسية. في PyOxidizer، يتم استيراد الوحدات من الذاكرة - يتم تحميل جميع الوحدات المضمنة على الفور في الذاكرة ثم يتم استخدامها دون الوصول إلى القرص). في الاختبارات، تم تقليل وقت تشغيل التطبيق عند استخدام PyOxidizer بمقدار النصف تقريبًا.

ومن بين المشاريع المماثلة الموجودة بالفعل، يمكن ملاحظة ما يلي: PyInstaller (يقوم بفك ضغط الملف في دليل مؤقت واستيراد الوحدات منه)، py2exe (مرتبط بمنصة Windows ويتطلب توزيع ملفات متعددة)، py2app (مرتبط بنظام التشغيل macOS)، تجميد cx (يتطلب حزمة تبعية منفصلة)، شيف и PEX (قم بتكوين حزمة بتنسيق ZIP وتتطلب وجود لغة Python على النظام)، نويتكا (يجمع الكود بدلاً من تضمين مترجم)، عازف البيانو (مرتبط بنظام Windows) بيرون (تطوير الملكية دون شرح مبادئ التشغيل).

في المرحلة الحالية من التطوير، قام PyOxidizer بالفعل بتنفيذ الوظيفة الرئيسية لإنشاء ملفات قابلة للتنفيذ لأنظمة التشغيل Windows وmacOS وLinux. من الفرص غير المتاحة حاليا يحتفل به الافتقار إلى بيئة بناء قياسية، وعدم القدرة على إنشاء حزم بتنسيقات MSI وDMG وdeb/rpm، ومشاكل في مشاريع التعبئة والتغليف التي تتضمن امتدادات معقدة في لغة C، ونقص الأوامر لدعم التسليم ("Pyoxyizer add"، "Pyoxyizer Analysis" و"ترقية pyoxyizer")، والدعم المحدود لـ Terminfo وReadline، ونقص الدعم للإصدارات الأخرى غير Python 3.7، ونقص الدعم لضغط الموارد، وعدم القدرة على الترجمة المشتركة.

المصدر: opennet.ru

إضافة تعليق