سؤال

لقد كتبت برنامجًا سريعًا بلغة بايثون لإضافة واجهة المستخدم الرسومية gtk إلى برنامج cli.كنت أتساءل كيف يمكنني إنشاء برنامج تثبيت باستخدام distutils.نظرًا لأنها مجرد واجهة أمامية لواجهة المستخدم الرسومية لتطبيق سطر الأوامر، فهي تعمل فقط في *nix على أي حال، لذا فأنا لست قلقًا بشأن كونها منصة مشتركة.

هدفي الرئيسي هو إنشاء حزمة .deb لمستخدمي debian/ubuntu، لكنني لا أفهم ملفات التكوين/التكوين.لقد كنت في المقام الأول مطور ويب حتى الآن.

يحرر:هل يعرف أحد مشروعًا يستخدم distutils حتى أتمكن من رؤيته أثناء العمل، كما تعلمون، محاولة بنائه فعليًا؟

وهنا بعض الروابط المفيدة

  • دليل التعبئة والتغليف لأوبونتو بايثون

    هذا الدليل هو جداً متعاون.لا أعرف كيف فاتني ذلك خلال الموجة الأولى من التلاعب.حتى أنه يرشدك خلال تعبئة تطبيق بايثون موجود

  • مشروع أوبونتو موتو

    هذه هي الحزمة الرسمية لمشروع الصيانة في أوبونتو.يمكن لأي شخص الانضمام، وهناك الكثير من البرامج التعليمية والمعلومات حول إنشاء الحزم، من جميع الأنواع، والتي تتضمن "دليل تعبئة python" أعلاه.

  • "بيثون يزعج ديب؟" - مناقشة منتدى ARS Technica

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

  • "أمر bdist_deb لـ distutils

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

  • وصف تنسيق deb ومدى ملاءمة distutils لقائمة بريد python

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

المحلول

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

فيما يلي مثال واقعي (مجهول المصدر):

#!/usr/bin/python 

from distutils.core import setup 

setup (name = 'Initech Package 3', 
          description = "Services and libraries ABC, DEF", 
          author = "That Guy, Initech Ltd", 
          author_email = "that.guy@initech.com", 
          version = '1.0.5', 
          package_dir = {'Package3' : 'site-packages/Package3'}, 
          packages = ['Package3', 'Package3.Queries'], 
          data_files = [ 
                       ('/etc/Package3', ['etc/Package3/ExternalResources.conf']) 
          ])

نصائح أخرى

apt-get install python-stdeb

أداة تحويل حزمة مصدر Python إلى Debian

توفر هذه الحزمة بعض الأدوات لإنتاج حزم دبيان من حزم بايثون عبر أمر distutils الجديد، sdist_dsc.يتم توفير الإعدادات الافتراضية التلقائية لحزمة دبيان، ولكن يمكن تخصيص العديد من جوانب الحزمة الناتجة عبر ملف التكوين.

  • سيقوم Pypi-install بالاستعلام عن فهرس Python Package (PYPI) لحزمة ، وتنزيلها ، وإنشاء .deb منه ، ثم تثبيت .DEB.
  • ستقوم PY2DSC بتحويل Tarball المصدر المصدر إلى حزمة مصدر Debian.

ستستخدم معظم برامج بايثون distutils. جانغو هو واحد - انظر http://code.djangoproject.com/svn/django/trunk/setup.py

يجب عليك أيضا أن تقرأ وثائق, ، لأنه شامل جدًا ويحتوي على بعض الأمثلة الجيدة.

لقد وجدت ما يلي درس تعليمي أن تكون مفيدة للغاية.إنه أقصر من وثائق distutils ويشرح كيفية إعداد مشروع نموذجي خطوة بخطوة.

إن distutils ليس بالأمر الصعب حقًا بمجرد أن تتقنه.إنها في الواقع مجرد مسألة إدخال بعض المعلومات الوصفية (اسم البرنامج، المؤلف، الإصدار، إلخ) ثم تحديد الملفات التي تريد تضمينها.على سبيل المثال، إليك نموذج لوحدة distutils setup.py من مكتبة بايثون المعقدة:

كاميليا setup.py

لاحظ أن هذا لا يتعامل مع أي ملفات بيانات أو غيرها، لذلك YMMV.

من ناحية أخرى، أوافق على أن وثائق distutils ربما تكون من أسوأ وثائق بايثون.إنه شامل للغاية في بعض المجالات، لكنه يهمل بعض المعلومات المهمة حقًا في مناطق أخرى.

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