حدد python_egg_cache مخصص مع zc.buildout؟
-
26-09-2019 - |
سؤال
نحن نواجه مشاكل عند محاولة نشر عدد من المشاريع التي تستخدم 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'