【问题标题】:Specify a custom PYTHON_EGG_CACHE dir with zc.buildout?使用 zc.buildout 指定自定义 PYTHON_EGG_CACHE 目录?
【发布时间】:2011-04-30 20:06:49
【问题描述】:

在尝试部署大量使用 zc.buildout 的项目时,我们遇到了问题 - 特别是我们发现他们想将他们的 PYTHON_EGG_CACHE 目录放在整个节目中。我们想以某种方式将此目录设置为与内置项目相同级别的目录,其中可以找到eggs

网上有人说Plone项目可以这样做,但是没有Plone可以做到吗?

是否有一些配方可以设置环境变量,以便我们可以在./bin 中设置PYTHON_EGG_CACHE 可执行文件?

【问题讨论】:

    标签: buildout python-egg-cache


    【解决方案1】:

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

    [buildout]
    ...
    unzip = true
    

    如果您的系统 python 安装了压缩鸡蛋,但仍需要解压缩以访问资源,并且在脚本中设置 PYTHON_EGG_CACHE 是您唯一的选择(而不是为您的用户设置环境变量),您可以尝试使用 @ zc.recipe.egg 的 987654322@ 选项可将任意 Python 代码添加到您的脚本中:

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

    【讨论】:

    • 我认为 '/tmp/python_eggs' 应该用引号括起来,所以: os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_eggs'
    • @seddonym:是的,对不起,这是一段python代码,字符串应该被引用。
    【解决方案2】:

    我不确定你的意思。您通常拥有的三个选项:

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

    • 您可以将 buildout.cfg 的 [buildout] 部分中的 eggs-dir 变量设置为某个目录。只需告诉它放置它们的位置即可。

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

    其中一个(尤其是最后一个)是否实现了您想要的?

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

    【讨论】:

    猜你喜欢
    • 2011-02-24
    • 2013-12-30
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2013-03-06
    • 2014-12-25
    • 2016-12-11
    • 1970-01-01
    相关资源
    最近更新 更多