使用zc.buildout指定自定义PYTHON_EGG_缓存目录?

使用zc.buildout指定自定义PYTHON_EGG_缓存目录?,buildout,python-egg-cache,Buildout,Python Egg Cache,我们在尝试部署大量使用zc.buildout的项目时遇到了问题,特别是我们发现他们希望将其PYTHON\u EGG\u缓存目录放在整个节目中。我们希望以某种方式将此目录设置为与构建项目相同级别的目录,在那里可以找到eggs 网上有人提到,这可以为Plone项目完成,但没有Plone,这有可能吗 是否有一些方法可以设置环境变量,以便我们可以在/bin中设置PYTHON\u EGG\u缓存可执行文件?我不确定您的意思。您通常有三种选择: 默认情况下,Buildout将鸡蛋存储在Buildout目录

我们在尝试部署大量使用zc.buildout的项目时遇到了问题,特别是我们发现他们希望将其
PYTHON\u EGG\u缓存
目录放在整个节目中。我们希望以某种方式将此目录设置为与构建项目相同级别的目录,在那里可以找到
eggs

网上有人提到,这可以为Plone项目完成,但没有Plone,这有可能吗


是否有一些方法可以设置环境变量,以便我们可以在
/bin
中设置
PYTHON\u EGG\u缓存
可执行文件?

我不确定您的意思。您通常有三种选择:

  • 默认情况下,Buildout将鸡蛋存储在Buildout目录中名为
    eggs/
    的目录中

  • 您可以将buildout.cfg的
    [buildout]
    部分中的
    eggs dir
    变量设置为某个目录。告诉它放在哪里就行了

  • 您还可以在主目录中的
    .buildout/defaults.cfg
    中设置相同的选项。这样,您可以为所有项目设置默认值。便于将所有鸡蛋存放在一个地方:例如,这样可以节省大量下载时间

其中一个(尤其是最后一个)能实现你想要的吗


还有:不要在生成的
bin/*
文件中乱扔鸡蛋。让buldout挑鸡蛋,那是它的目的。

我不知道你的意思。您通常有三种选择:

  • 默认情况下,Buildout将鸡蛋存储在Buildout目录中名为
    eggs/
    的目录中

  • 您可以将buildout.cfg的
    [buildout]
    部分中的
    eggs dir
    变量设置为某个目录。告诉它放在哪里就行了

  • 您还可以在主目录中的
    .buildout/defaults.cfg
    中设置相同的选项。这样,您可以为所有项目设置默认值。便于将所有鸡蛋存放在一个地方:例如,这样可以节省大量下载时间

其中一个(尤其是最后一个)能实现你想要的吗


还有:不要在生成的
bin/*
文件中乱扔鸡蛋。让buldout挑选鸡蛋,这就是它的目的。

PYTHON_EGG_缓存仅用于压缩鸡蛋,最好的办法是让zc.buildout安装所有需要的鸡蛋解压缩:

[buildout]
...
unzip = true
如果您的系统python安装了Zippped eggs,但仍需要解压才能访问资源,那么在脚本中设置python_EGG_缓存是您唯一的选择(而不是为用户设置环境变量),您可以尝试使用zc.recipe.egg的
初始化
选项向脚本中添加任意Python代码:

[a-part]
recipe = zc.recipe.egg
...
initialization = 
    import os
    os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_eggs'

PYTHON_EGG_缓存仅用于压缩鸡蛋,最好是让zc.buildout安装所有需要的鸡蛋解压缩:

[buildout]
...
unzip = true
如果您的系统python安装了Zippped eggs,但仍需要解压才能访问资源,那么在脚本中设置python_EGG_缓存是您唯一的选择(而不是为用户设置环境变量),您可以尝试使用zc.recipe.egg的
初始化
选项向脚本中添加任意Python代码:

[a-part]
recipe = zc.recipe.egg
...
initialization = 
    import os
    os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_eggs'

PYTHON_EGG_缓存与eggs目录不同。需要解压才能获取特定资源的压缩鸡蛋将在该目录中解压。请参见PYTHON_EGG_缓存与eggs目录不同。需要解压才能获取特定资源的压缩鸡蛋将在该目录中解压。看,我认为“/tmp/python_-egs”应该用引号括起来,所以:os.environ['python_-EGG\u-CACHE']='/tmp/python_-egs'@seddonym:是的,对不起,这是python代码的一部分,字符串应该用引号括起来。我认为“/tmp/python_-egs”应该用引号括起来,所以:os.environ['python_-EGG\u-CACHE']='/tmp/python_-egs'@seddonym:,这是python代码的一部分,字符串应该被引用。