导出buildout选择的版本。
项目描述
buildout.dumppickedversions
问题:什么是buildout扩展?
答案:http://pypi.python.org/pypi/zc.buildout#extensions
问题
在使用基于zc.buildout的部署系统时,您希望能够在一个月后使用相同的一组egg版本重现相同的设置。如果没有固定所有egg,则任务不可能完成。
解决方案
buildout.dumppickedversions 是一个Buildout扩展,它正是为此而设计的。它可以打印或生成一个包含所有未固定egg的versions.cfg文件。
它还在每个由zc.buildout选中的egg之前添加了一个注释,作为其他包含所需egg列表的egg的需求。
buildout.dumppickedversions 需要 zc.buildout 1.5 或更高版本。
buildout.dumppickedversions 选项
- dump-picked-versions-file
您希望 buildout.dumppickedversions 写入的文件名。如果没有提供,buildout.dumppickedversions 将将版本输出到屏幕。
- overwrite-picked-versions-file
如果设置为 true,则当 buildout.dumppickedversions 存在时,它将覆盖 dump-picked-versions-file 中定义的文件。默认为 True。
详细文档
让我们创建一个egg,以便在测试中使用它。
>>> mkdir('myegg')
>>> write('myegg', 'setup.py',
... '''
... from setuptools import setup
... setup(name='myegg', version='1.0',)
... ''')
>>> write('myegg', 'README', '')
>>> print system(buildout+' setup myegg bdist_egg'), # doctest: +ELLIPSIS
Running setup script 'myegg/setup.py'.
...
现在让我们创建一个 buildout 来安装 egg 并使用 buildout.dumppickedversions。
>>> write('buildout.cfg',
... '''
... [buildout]
... extensions = buildout.dumppickedversions
... parts = foo
... find-links = %s
... index = http://pypi.python.org/simple
... [foo]
... recipe = zc.recipe.egg
... eggs = myegg
... ''' % join('myegg', 'dist'))
运行 buildout 将打印有关选中版本的信息。
>>> print system(buildout), # doctest: +ELLIPSIS Getting distribution for 'buildout.dumppickedversions'. ... *************** PICKED VERSIONS **************** [versions] myegg = N.N setuptools = N.N zc.buildout = N.N zc.recipe.egg = N.N <BLANKLINE> *************** /PICKED VERSIONS ***************
要将选中版本输出到文件,我们只需添加一个 dump-picked-versions-file 选项并给出一个文件名。
>>> write('buildout.cfg',
... '''
... [buildout]
... extensions = buildout.dumppickedversions
... dump-picked-versions-file = versions.cfg
... parts = foo
... find-links =
... %s
... index = http://pypi.python.org/simple
... [foo]
... recipe = zc.recipe.egg
... eggs =
... myegg
... ''' % join('myegg', 'dist'))
>>> print system(buildout), # doctest: +ELLIPSIS
Uninstalling foo.
Installing foo.
*********************************************
Writing picked versions to versions.cfg
*********************************************
以下是版本.cfg 文件的内容
>>> cat('versions.cfg')
[versions]
myegg = N.N
setuptools = N.N
zc.buildout = N.N
zc.recipe.egg = N.N
<BLANKLINE>
下次我们运行 buildout 时,该文件将被覆盖。
>>> print system(buildout), # doctest: +ELLIPSIS Updating foo. ********************************************* Overwriting versions.cfg *********************************************
当不想覆盖文件时,我们只需添加一个 overwrite-picked-versions-file 并将其设置为 false。
>>> write('buildout.cfg',
... '''
... [buildout]
... extensions = buildout.dumppickedversions
... dump-picked-versions-file = versions.cfg
... overwrite-picked-versions-file = false
... parts = foo
... find-links =
... %s
... index = http://pypi.python.org/simple
... [foo]
... recipe = zc.recipe.egg
... eggs =
... myegg
... ''' % join('myegg', 'dist'))
>>> print system(buildout), # doctest: +ELLIPSIS
Updating foo.
*********************************************
Skipped: File versions.cfg already exists.
*********************************************
如果 eggA 被安装为其他egg的需求,您将在 eggA 前得到一条注释行,其中包含所需egg的列表。
让我们举一个例子。我们将安装 zope.component。
>>> write('buildout.cfg',
... '''
... [buildout]
... extensions = buildout.dumppickedversions
... dump-picked-versions-file = versions.cfg
... parts = foo
... index = http://pypi.python.org/simple
... [foo]
... recipe = zc.recipe.egg
... eggs = zope.component
... ''')
>>> print system(buildout), # doctest: +ELLIPSIS
Uninstalling foo.
Installing foo.
Getting distribution for 'zope.component'.
...
*********************************************
Overwriting versions.cfg
*********************************************
然后让我们查看版本.cfg 文件的内容。
>>> cat('versions.cfg')
[versions]
zc.buildout = N.N
zc.recipe.egg = N.N
zope.component = N.N
zope.interface = N.N
<BLANKLINE>
#Required by:
#zope.event N.N
#zope.interface N.N
#zope.component N.N
setuptools = N.N
<BLANKLINE>
#Required by:
#zope.component N.N
zope.event = N.N
变更历史
0.5 (2012-01-23)
性能优化,避免在不会记录时对工作集和需求进行排序。从 zc.buildout:[rossp] http://svn.zope.org/zc.buildout/trunk?rev=124059&view=rev
0.4 (2009-05-03)
删除了重复的注释行 [mustapha]
0.3 (2009-05-03)
在生成的版本文件中添加了注释,说明了如果有的话,哪个 egg 需要选中的 egg。[mustapha]
0.2 (2009-03-15)
从转储文件中删除了 buildout 标头 [mustapha]
添加了 overwrite-picked-versions-file 选项 [mustapha]
0.1 (2009-02-07)
使用 ZopeSkel 创建了配方 [mustapha]
贡献者
Mustapha Benali,作者
项目详情
buildout.dumppickedversions-0.5.tar.gz 的散列
| 算法 | 散列摘要 | |
|---|---|---|
| SHA256 | 5afaa6d9aabd6d69de935f99288d526d77704b847cfd56c4a29fcb9b99ee6c95 |
|
| MD5 | e81cffff329aaaaf8dd0d1c6bd63c8b0 |
|
| BLAKE2b-256 | 96648c10f0fd16a7769396740a03b2587fd5f74dc44b8a5b416b99d3fa7c39f1 |