2011-08-15 70 views
2

我想在Buildout中构建一个命令行项目,我不确定如何定义要构建到bin目录的脚本。我记得在什么地方见过这种能力,但我不记得在哪里和文档也不是那么好:(如何为Buildout创建脚本?

回答

2

zc.recipe.egg: Script generation。zc.recipe.egg实际上是部分zc.buildout的,但你说得对,至少应该有一个清晰的指针,指出zc.buildout文档不完整,如果你正在处理python发行版,直到你阅读了zc.recipe.egg的文档。

+0

'z3c.recipe.scripts'应该是'zc.recipe.egg'的新选择。 –

+1

不再有:buildout 2.0删除了构建1.5的半成品站点包隔离功能,并返回使用zc.recipe.egg。 z3c.recipe.egg仅适用于构建1.5到1.7。 –

6

鸡蛋setup.py是定义脚本的地方,因为包名为mypackage,里面有一个main.py和一个运行函数 - 它看起来像这样:

setup(
    ...  
    entry_points={ 
    'console_scripts': ['myscriptname = mypackage.main:run'], 
    }, 
    ... 
) 

在扩建,那么你只需要使用zc.recipe.egg:脚本配方:

[buildout] 
parts = myscripts 

[myscript] 
recipe = zc.recipe.egg:script 
eggs = mypackage 

扩建后运行theres一个executeable文件./bin/myscriptname

+0

这是很棒的东西,谢谢! –