创建已安装软件包的统一目录结构,并与实际内容进行符号链接,以便于导航。
collective.recipe.omelette的Python项目详细描述
详细文档
简介
命名空间包提供了能够分发大型 小的,独立的系统。不过,它们的导航可能有些笨重, 因为你的蛋藏里有一大堆蛋,然后一个看起来没完没了的 您需要打开一系列目录才能真正找到鸡蛋的内容。
这个配方设置了一个目录结构,该结构映射实际的python名称空间,其中 指向鸡蛋内容物的符号链接。所以,与其这样…:
egg-cache/ my.egg.one-1.0-py2.7.egg/ my/ egg/ one/ (contents of first egg) my.egg.two-1.0-py2.7.egg/ my/ egg/ two/ (contents of second egg)
…你得到这个:
omelette/ my/ egg/ one/ (contents of first egg) two/ (contents of second egg)
您还可以在煎蛋中包含非蛋化的python包。这使得 获取一条可以添加到python path中的路径,以用于特定的python环境 比如在mod_wsgi或pydev下运行。
Zope和Plone的典型用法
对于典型的plone构建,有一个名为"instance"的部分使用plone.recipe.zope2instance recipe和 名为"zope2"的部分使用plone.recipe.zope2install recipe,对buildout.cfg的以下添加将 结果生成一个煎蛋卷,包括zope实例使用的所有鸡蛋和旧式产品以及 来自zope的lib/python的包。如果你想让煎蛋卷找到所有的东西,那么煎蛋卷放在最后是很重要的:
[buildout] parts = ...(other parts)... omelette ... [omelette] recipe = collective.recipe.omelette eggs = ${instance:eggs} products = ${instance:products} packages = ${zope2:location}/lib/python ./
(注意:如果您的实例部分缺少"products"变量,那么也可以从煎蛋饼部分中省略它,或者 煎蛋卷会自动生成失败。)
支持的选项
配方支持以下选项:
< DL>将煎蛋卷与茄汁一起使用
mustapha benali的buildout.eggtractor为buildout自动查找 无需编辑buildout.cfg即可开发鸡蛋。然而,如果你用它,煎蛋食谱 不会注意到你的鸡蛋,除非你a)手动添加到煎蛋部分的鸡蛋选项,或 b)将煎蛋饼部件的名称添加到构建部件的拖拉机目标部件选项中。
将煎蛋卷与带拉链的鸡蛋一起使用
煎蛋卷目前还不知道如何处理拉链的鸡蛋。如果它遇到一个,你会 请参见如下警告:
omelette: Warning: (While processing egg elementtree) Egg contents not found at /Users/davidg/.buildout/eggs/elementtree-1.2.7_20070827_preview-py2.4.egg/elementtree. Skipping.
通过在[bu]中设置unzip=true标志,您可以告诉buildout解压所有鸡蛋。ildout]部分。 (请注意,这仅对设置了标志后下载的鸡蛋生效。)
运行测试
只需从SVN获取菜谱并运行:
python setup.py test
已知问题:测试在一个单独的进程中运行,因此当前 无法在配方中设置PDB断点并在测试期间进行调试。 如果你需要这样做,建立另一个建筑安装煎蛋 一部分,包括collective.recipe.omelete作为发育蛋。