Especifique um diretório PYTHON_EGG_CACHE personalizado com zc.buildout?
-
26-09-2019 - |
Pergunta
Estamos tendo problemas ao tentar implantar vários projetos que usam zc.buildout - especificamente, estamos descobrindo que eles querem colocar seus PYTHON_EGG_CACHE
diretórios em todo o show.Gostaríamos de definir de alguma forma este diretório para um no mesmo nível do projeto construído, onde eggs
pode ser encontrado.
Há alguma menção online de que isso pode ser feito para projetos Plone, mas é possível fazer isso sem o Plone?
Existem algumas receitas que podem configurar uma variável de ambiente para que possamos definir o PYTHON_EGG_CACHE
arquivos executáveis em ./bin
?
Solução
Não tenho certeza do que você quer dizer.Três opções que você normalmente tem:
O Buildout, por padrão, armazena os ovos em um diretório chamado
eggs/
dentro do seu diretório de construção.Você pode definir o
eggs-dir
variável dentro do seu buildout.cfg[buildout]
seção para algum diretório.Basta dizer onde colocá-los.Você também pode definir a mesma opção em
.buildout/defaults.cfg
dentro do seu diretório inicial.Dessa forma, você pode definir um padrão para todos os seus projetos.Útil para armazenar todos os seus ovos em um só lugar:isso pode economizar muito tempo de download, por exemplo.
Um desses (especialmente o último) realiza o que você deseja?
E:não mexa com ovos no gerado bin/*
arquivos.Deixe o Buldout colher os ovos, esse é o seu propósito.
Outras dicas
O PYTHON_EGG_CACHE é usado apenas para ovos compactados, sua melhor aposta é fazer com que o zc.buildout instale todos os ovos necessários descompactados:
[buildout]
...
unzip = true
Se o seu sistema python possui ovos compactados instalados que ainda exigem descompactação para acesso a recursos, e definir PYTHON_EGG_CACHE em seus scripts é sua única opção (em vez de definir a variável de ambiente para seu usuário), você pode tentar usar o initialization
opção de zc.recipe.egg para adicionar código Python arbitrário aos seus scripts:
[a-part]
recipe = zc.recipe.egg
...
initialization =
import os
os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_eggs'