Spécifiez une PYTHON_EGG_CACHE personnalisée dir avec zc.buildout?
-
26-09-2019 - |
Question
Nous avons des problèmes en essayant de déployer un certain nombre de projets dont l'utilisation zc.buildout - Plus précisément, nous constatons qu'ils veulent mettre leurs répertoires PYTHON_EGG_CACHE
tout le spectacle. Nous aimerions mettre en quelque sorte ce répertoire à un au même niveau que le projet intégré sur où eggs
se trouve.
Il y a une mention en ligne que cela peut être fait pour les projets Plone, mais est-il possible de le faire sans Plone?
Y a-t-il des recettes qui peuvent mettre en place une variable d'environnement afin que nous puissions définir les fichiers exécutables PYTHON_EGG_CACHE
dans ./bin
?
La solution
Je ne sais pas ce que vous voulez dire. Trois options que vous avez normalement:
-
Buildout, par défaut, stocke les oeufs dans un répertoire appelé
eggs/
dans votre répertoire de buildout. -
Vous pouvez définir la variable
eggs-dir
dans la section[buildout]
de votre buildout.cfg à un répertoire. Il suffit de lui dire où les placer. -
Vous pouvez également définir cette option même dans
.buildout/defaults.cfg
dans votre répertoire personnel. De cette façon, vous pouvez définir une valeur par défaut pour tous vos projets. Très pratique pour ranger tous vos oeufs dans un seul endroit. Qui peut économiser beaucoup de temps de téléchargement, par exemple
Est-ce que l'un de ceux (surtout le dernier) accomplir ce que vous voulez?
: ne muck pas avec des oeufs dans les fichiers générés bin/*
. Laissez-buldout choisir les oeufs, c'est son but.
Autres conseils
Le PYTHON_EGG_CACHE est utilisé uniquement pour les œufs avec fermeture à glissière, votre meilleur pari est d'avoir zc.buildout installer tous les œufs nécessaires décompressé:
[buildout]
...
unzip = true
Si votre python système a des oeufs compressés installés qui nécessitent encore décompressé pour l'accès aux ressources, et le réglage de la PYTHON_EGG_CACHE dans vos scripts est votre seule option (par opposition à définir la variable d'environnement pour votre utilisateur), vous pouvez essayer d'utiliser le initialization
possibilité de zc.recipe.egg pour ajouter du code Python arbitraire à vos scripts:
[a-part]
recipe = zc.recipe.egg
...
initialization =
import os
os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_eggs'