ما هي مزايا تعبئة مكتبة/تطبيق بايثون الخاص بك كملف .egg؟

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

سؤال

لقد قرأت بعض المعلومات عن ملفات .egg ولاحظتها في دليل lib الخاص بي، لكن ما هي مزايا/عيوب استخدامها كمطور؟

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

المحلول

من مجتمع أدوات تطبيقات Python Enterprise:

"البيض بالنسبة للبايثون مثل الجرار بالنسبة لجافا..."

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

الفوائد الأساسية لبيض بيثون هي:

  • إنها تتيح أدوات مثل مدير حزم Python "Easy Install".

  • .لا يلزم وجود خطوة بناء أو تثبيت ، فقط ضعها على Pythonpath أو Sys.Path واستخدامها (قد تتطلب وقت التشغيل المثبت في حالة استخدام ملحقات C أو ملفات البيانات)

  • ويمكن أن تتضمن البيانات الوصفية للحزمة، مثل البيضات الأخرى التي تعتمد عليها

  • أنها تسمح بتقسيم "حزم مساحة الاسم" (الحزم التي تحتوي فقط على حزم أخرى) إلى توزيعات منفصلة (على سبيل المثالzope., ، ملتوية.، يمكن توزيع حزم الذروة.* كبيض منفصل ، على عكس الحزم العادية التي يجب وضعها دائمًا تحت نفس الدليل الأصل.هذا يسمح الآن بتوزيع حزم متجانسة ضخمة كمكونات منفصلة.)

  • أنها تسمح للتطبيقات أو المكتبات بتحديد الإصدار المطلوب من المكتبة ، بحيث يمكنك على سبيل المثالتتطلب ("Twisted-Internet> = 2.0") قبل إجراء استيراد twisted.internet.

  • إنها تنسيق رائع لتوزيع الامتدادات أو الإضافات للتطبيقات والأطر القابلة للتمديد (مثل TRAC ، والتي تستخدم البيض للإضافات من 0.9B1) ، لأن وقت تشغيل البيض يوفر واجهات برمجة التطبيقات البسيطة لتحديد موقع البيض والعثور على نقاط الدخول المعلنة (مماثلة إلى مفهوم "نقطة التمديد" لـ Eclipse).

  • هناك أيضًا فوائد أخرى قد تأتي من وجود تنسيق موحد ، على غرار فوائد تنسيق "جرة" Java.

-آدم

نصائح أخرى

بيضة واحدة في حد ذاتها ليست أفضل من إطلاق المصدر المناسب.الجزء الجيد هو التعامل مع التبعية.مثل حزم debian أو rpm، يمكنك القول أنك تعتمد على البيض الآخر وسيتم تثبيتها تلقائيًا (من خلال pypi.python.org).

تعليق ثاني:تنسيق البيضة نفسه عبارة عن تنسيق ثنائي معبأ.من الأفضل توزيع حزم python العادية التي تتكون من كود python فقط على أنها "إصدارات مصدر"، لذا فإن "python setup.py sdist" الذي ينتج عنه .tar.gz.يُطلق عليها أيضًا اسم "البيض" عند تحميلها على pypi.

حيث تحتاج إلى بيض ثنائي:عندما تقوم بتجميع بعض امتدادات كود C.ستحتاج بعد ذلك إلى عدة بيضات ثنائية (بيضة يونكس 32 بت، بيضة ويندوز، وما إلى ذلك).

يعد البيض طريقة جيدة جدًا لتوزيع تطبيقات بايثون.فكر في الأمر كملف .deb مستقل عن النظام الأساسي والذي سيقوم بتثبيت كافة التبعيات وما إلى ذلك.الميزة هي أنه سهل الاستخدام للمستخدم النهائي.العيب هو أنه قد يكون من المرهق تجميع تطبيقك كملف بيضة.

يجب عليك أيضًا تقديم وسيلة تثبيت بديلة بالإضافة إلى .eggs.هناك بعض الأشخاص الذين لا يحبون استخدام البيض لأنهم لا يحبون فكرة تثبيت البرنامج لأي برنامج يريده.هذه عادةً ما تكون من أنواع مسؤولي النظام.

تعد ملفات .egg في الأساس طريقة رائعة لنشر تطبيق python الخاص بك.يمكنك التفكير في الأمر على أنه ملفات .jar لـ Java.

مزيد من المعلومات هنا.

مهما فعلت، لا تتوقف عن توزيع تطبيقك أيضًا، باعتباره أسهل تنسيق قابل للتعبئة لأنظمة التشغيل مع حزمة نظام.

بالنسبة لبرامج بايثون البسيطة، ربما لا تحتاج إلى استخدام البيض.ينبغي أن يكون توزيع ملفات .py الأولية كافيًا؛إنه مثل توزيع الملفات المصدرية لنظام GNU/Linux.يمكنك أيضًا استخدام "حزم" أنظمة التشغيل المختلفة (مثل py2exe أو py2app) لإنشاء ملفات .exe أو .dmg أو ملفات أخرى لأنظمة تشغيل مختلفة.

برامج أكثر تعقيدا، على سبيل المثال.يتطلب Django البيض إلى حد كبير نظرًا للوحدات والتبعيات المختلفة المطلوبة.

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