سؤال

يجب أن يكون هذا السيناريو الشائع, ولكن لا يمكن العثور على أي وظيفة حتى الآن..

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

  • لديك resources الدليل في المصدر مستودع ثم نقل الملفات إلى /usr/share/foo/
  • مكان الموارد مباشرة داخل حزمة بايثون الذي يمر تحت /usr/lib/python-<version>/foo/

أي اقتراحات ؟

تحرير: كما اقترح توضيح أن المنصة الرئيسية هذا سوف يعمل على لينكس.

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

المحلول

هذا السؤال هو إلى حد ما غير مكتملة ، لأن الإجابة الصحيحة تعتمد على نظام التشغيل الأساسي ، ولكل منها أسلوب عملها.في لينكس (و معظم unix القائمة على برمجيات المصدر المفتوح) على سبيل المثال /usr/share/foo أو /usr/local/share/foo سيكون المعيار.في OS X يمكنك أن تفعل الشيء نفسه, ولكن أود أن أعتقد "/Library/Application support/Foo" (على الرغم من أن عادة لتخزين الإعدادات وغيرها) سيكون المكان المناسب لوضع مثل هذه الأمور ، على الرغم من إذا كنت تكتب المكتبات التالية في "إطار" فكرة جميع الموارد التي ستدرج في /المكتبة/أطر/Foo.إطار" ...تطبيقات على OS X من ناحية أخرى يجب أن تحافظ على كل هناك موارد في حدود الموارد الدليل داخل فو.التطبيق

نصائح أخرى

وضعنا غير .py الملفات في /opt/foo/foo-1.2/...

ما عدا بالطبع عن ثابت الإعلام التي تقدم من قبل أباتشي ، أن يذهب إلى /var/www/html/foo/foo-1.1/media/...

ما عدا بالطبع عن العملاء محددة ملفات التكوين.يذهبون إلى /var/opt/customer/foo/...

تلك اتبع لينكس المعايير كما أفهمها.

ونحن في محاولة للبقاء بعيدا عن /usr/lib/ و /lib أنواع المواقع لأن هؤلاء يشعرون انهم جزء من التوزيع.نحن الهزيل تجاه /opt و /var لأنهم يفصل بوضوح من توزيعة لينكس الدلائل.

على القياسية الموقع هو المكان الخاص بك القياسية يبس يذهب.ولكن لا يبدو لي من ما كنت قد كتبت ، أن كنت تريد الخاص بك الثعبان lib هناك.أعتقد يجب عليك محاولة الخروج Virtualenv.

إذا كنت لا تريد أن تذهب من خلال كل المتاعب (حسنا, انها حقا مجرد المبالغ sudo easy_install virtualenv بالنسبة لك) ، هل يمكن أن تحاول مجرد تفريغ الخاص بك الثعبان ليب في أي دير في ~/ و لا شيء على غرار

import sys
sys.path.append( '/full/path/to/your/lib/goes/here')

إلى أي تطبيق يستخدم lib.

يرجى أن نضع في اعتبارنا أن الأمثلة هي الاختبار لأغراض فقط.عن أي شيء يعيش العش ، وأود أن ننصح باستخدام distutil.أمثلة من الاستخدام تعطى هنا.

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