سؤال

نحن نواجه مشاكل عند محاولة نشر عدد من المشاريع التي تستخدم ZC.Buildout - على وجه التحديد نجد أنهم يريدون وضعهم PYTHON_EGG_CACHE الدلائل في جميع أنحاء العرض. نود أن نضع هذا الدليل بطريقة ما على واحد على نفس مستوى المشروع المدمج ، حيث eggs يمكن ايجاده.

هناك بعض الذكر على الإنترنت بأنه يمكن القيام بذلك لمشاريع PLONE ، ولكن هل من الممكن القيام بذلك دون PLONE؟

هل هناك بعض الوصفات التي يمكنها إعداد متغير بيئة حتى نتمكن من ضبط PYTHON_EGG_CACHE ملفات قابلة للتنفيذ في ./bin?

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

المحلول

لست متأكدًا مما تقصده. ثلاثة خيارات لديك عادة:

  • Buildout ، افتراضيًا ، يخزن البيض في دليل يسمى eggs/ داخل دليل البناء الخاص بك.

  • يمكنك تعيين ملف eggs-dir متغير داخل buildout.cfg الخاص بك [buildout] قسم لبعض الدليل. فقط أخبرها بمكان وضعها.

  • يمكنك أيضًا تعيين هذا الخيار نفسه في .buildout/defaults.cfg داخل الدليل المنزلي الخاص بك. بهذه الطريقة يمكنك تعيين افتراضي لجميع مشاريعك. مفيد لتخزين كل بيضك في مكان واحد: يمكن أن يوفر الكثير من وقت التنزيل ، على سبيل المثال.

هل ينجز أحد هؤلاء (خاصة آخرهم) ما تريد؟

و: لا تتجول مع البيض في المولدة bin/* الملفات. دع Buldout يختار البيض ، هذا هو الغرض منه.

نصائح أخرى

يتم استخدام python_egg_cache فقط للبيض المضغوط ، أفضل رهان هو جعل Zc.Buildout تثبيت جميع البيض المطلوب غير مضغوط:

[buildout]
...
unzip = true

إذا كان نظامك الذي قام بتثبيت بيثون مثبتًا على البيض الذي لا يزال يتطلب إلغاء الضغط للوصول إلى الموارد ، ووضع Python_egg_cache في البرامج النصية الخاص بك هو الخيار الوحيد الخاص بك (على عكس ضبط متغير البيئة للمستخدم) ، يمكنك محاولة استخدام initialization خيار zc.recipe.egg لإضافة رمز بيثون تعسفي إلى البرامج النصية الخاصة بك:

[a-part]
recipe = zc.recipe.egg
...
initialization = 
    import os
    os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_eggs'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top