使用 zc.buildout 指定自定义 PYTHON_EGG_CACHE 目录?
Posted
技术标签:
【中文标题】使用 zc.buildout 指定自定义 PYTHON_EGG_CACHE 目录?【英文标题】:Specify a custom PYTHON_EGG_CACHE dir with zc.buildout? 【发布时间】:2011-04-30 20:06:49 【问题描述】:在尝试部署大量使用 zc.buildout 的项目时,我们遇到了问题 - 特别是我们发现他们想将他们的 PYTHON_EGG_CACHE
目录放在整个节目中。我们想以某种方式将此目录设置为与内置项目相同级别的目录,其中可以找到eggs
。
网上有人说Plone项目可以这样做,但是没有Plone可以做到吗?
是否有一些配方可以设置环境变量,以便我们可以在./bin
中设置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挑鸡蛋,这就是它的目的。
【讨论】:
PYTHON_EGG_CACHE 与eggs 目录不同。需要解压缩才能获取某些资源的压缩鸡蛋会在该目录中解压缩。见***.com/questions/2192323/…以上是关于使用 zc.buildout 指定自定义 PYTHON_EGG_CACHE 目录?的主要内容,如果未能解决你的问题,请参考以下文章
zc.buildout构建项目时报错‘AttributeError: '_NamespacePath' object has no attribute 'sort'’(