Geben Sie eine benutzerdefinierte PYTHON_EGG_CACHE dir mit zc.buildout?
-
26-09-2019 - |
Frage
Wir haben Probleme, wenn eine Reihe von Projekten zu implementieren versuchen zc.buildout, die die Verwendung - speziell wir finden, dass sie wollen, dass ihre PYTHON_EGG_CACHE
Verzeichnisse setzen in der ganzen Show. Wir möchten uns irgendwie mit diesem Verzeichnis ein auf dem gleichen Niveau wie die integrierte Out-Projekt auf, wo eggs
gefunden werden kann.
Es gibt einige Erwähnung online, dass dies für Plone-Projekte durchgeführt werden kann, aber ist es möglich, dies ohne Plone zu tun?
Gibt es einige Rezepte, die eine Umgebungsvariable einrichten können, damit wir die PYTHON_EGG_CACHE
ausführbare Dateien in ./bin
einstellen kann?
Lösung
Ich bin nicht sicher, was du meinst. Drei Optionen, die Sie haben in der Regel:
-
Buildout, standardmäßig speichert die Eier in einem Verzeichnis namens
eggs/
in Ihrem buildout Verzeichnis. -
Sie können die
eggs-dir
Variable in Ihrem buildout.cfg des[buildout]
Abschnitt in ein Verzeichnis. sagen Sie es einfach, wo sie setzen. -
Sie können auch einstellen, dass gleiche Option in
.buildout/defaults.cfg
in Ihrem Home-Verzeichnis. Auf diese Weise können Sie einen Standard für alle Ihre Projekte festgelegt. Praktisch für die Speicherung aller Eier in einem Ort:., Die eine Menge Download-Zeit, zum Beispiel speichern
Hat einer von denen (vor allem der letzten) erreichen, was Sie wollen?
Und: nicht mit Eiern in den generierten bin/*
Dateien vertrödeln. Lassen Sie buldout die Eier holen, das ist ihr Zweck.
Andere Tipps
Die PYTHON_EGG_CACHE nur für ZIP-Eier verwendet wird, ist die beste Wahl haben zc.buildout alle benötigten Eier installieren dekomprimiert:
[buildout]
...
unzip = true
Wenn Ihr System Python Reißverschluss Eier installiert, dass nach wie vor für den Ressourcenzugriff erfordern unzipping und Einstellen des PYTHON_EGG_CACHE in Ihren Skripten Ihre einzige Option ist (im Gegensatz die Umgebungsvariable für den Benutzer zu setzen), könnten Sie versuchen, die initialization
zu verwenden Option von zc.recipe.egg beliebigen Python-Code in Ihre Skripten hinzuzufügen:
[a-part]
recipe = zc.recipe.egg
...
initialization =
import os
os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_eggs'