PyOxidizer أداة لتجميع مشاريع Python في ملفات قابلة للتنفيذ

بيووكسيدايزر

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

يمكن تشغيل مثل هذه الملفات في بيئات بدون تثبيت مجموعة أدوات Python أو بغض النظر عن توفر الإصدار المطلوب من Python.

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

حول PyOxidizer؟

المشروع يعتمد على الوحدة التي تحمل نفس الاسم للغة Rust ، والتي تتيح لك تضمين مترجم Python في برامج Rust لتشغيل نصوص Python عليها.

بيووكسيدايزر لقد تجاوز الآن المكون الإضافي لـ Rust وتم وضعه كأداة متاحة لجمهور أوسع لبناء وتوزيع حزم Python المستقلة.

PyOxidizer هو أداة تهدف إلى حل مشكلة كيفية توزيع تطبيقات Python.

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

يعتبر توزيع تطبيقات Python بشكل عام مشكلة لم يتم حلها حيث حدد Russel Keith-Magee توزيع الكود باعتباره تهديدًا وجوديًا لطول العمر ، بالنسبة إلى Python. في كلماته ، لم يكن لدى Python أبدًا سجل ثابت لكيفية إعطاء الكود الخاص بي إلى شخص آخر ، خاصةً إذا لم يكن هذا الشخص الآخر مطورًا ويريد فقط استخدام تطبيقي.

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

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

كيف يعمل PyOxidizer؟

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

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

من خلال المشاريع القائمة المماثلة ، يمكن ملاحظة: PyInstaller (يفك ضغط الملف إلى دليل مؤقت ويستورد وحدات منه).

  • Py2exe (مرتبط بمنصة Windows ويتطلب توزيع ملفات متعددة) ، py2app (مرتبط بنظام macOS)
  • Cx-freeze (يتطلب حزم تبعية منفصلة) ، Shiv و PEX (شكل حزمة مضغوطة وتتطلب Python على النظام)
  • Nuitka (يجمع الكود ، وليس المترجم المضمن) ، pynsist (مرتبط بـ Windows) ، PyRun (تطوير الملكية بدون شرح لمبادئ التشغيل).

في المرحلة الحالية من التطوير ، قام PyOxidizer بالفعل بتطبيق الوظيفة الرئيسية لإنشاء ملفات قابلة للتنفيذ لنظام التشغيل Windows و macOS و Linux.

من القدرات بعيدة المدى التي لوحظت عدم وجود بيئة تجميع قياسية ، وعدم القدرة على إنشاء حزمة بتنسيق MSI و DMG و deb / rpm ، مع مشاكل حزم المشروع التي تنطوي على امتدادات معقدة للغة C.

في حين عدم وجود تعليمات لدعم الإصدار ("إضافة pyoxidizer ،" تحليل pyoxidizer "و" ترقية pyoxidizer ") ودعم محدود لـ Terminfo و Readline ، عدم وجود دعم للإصدارات بخلاف Python 3.7 ، نقص الدعم لضغط الموارد ، عدم القدرة على عبور الترجمة.

مصدر: https://pyoxidizer.readthedocs.io


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.