有没有一种简单的方法可以使用 zc.buildout 将 SCons 安装为鸡蛋?我最初的想法是,由于它使用了 distutils,我可以使用 zc.recipe.egg 安装它,并认为可以将鸡蛋设置为 SCons 脚本转到 ${buildout:directory}/bin 和SCons 被添加到 PYTHONPATH 中。
[buildout]
parts =
python
[python]
recipe = zc.recipe.egg
interpreter = mython
eggs =
SCons == 2.0.1
不幸的是,我不认为 SCons 的 setup.py 的编写方式与 zc.recipe.egg 配合得很好。我最终得到:
- ${buildout:directory}/eggs/scons-2.0.1-py2.6.egg/
- ${buildout:directory}/eggs/scons-2.0.1-py2.6.egg/scons-2.0.1/
- ${buildout:directory}/eggs/scons-2.0.1-py2.6.egg/scons-2.0.1/SCons/
- ${buildout:directory}/eggs/scons-2.0.1-py2.6.egg/EGG-INFO/scripts/
如果 (2) 在 PYTHONPATH 上并且 (4) 的内容被复制或链接到 bin 目录,这将起作用。
理想情况下,我想将它安装为一个鸡蛋,以利用我的全局鸡蛋目录;我不想拥有同一个构建工具的多个副本。是否可以使用现有的食谱来实现这个目标,或者我应该编写自己的食谱?
编辑:我制作了个人副本并修改了 SCons 的 setup.py 参数,以便创建一个 scons 入口点。我所做的唯一更改:删除“cmdclass”,添加“entry_points”。
arguments = {
'name' : "scons",
...
'scripts' : scripts,
'entry_points' : {
'console_scripts':
['scons = SCons.Script:main']
}
}
这种作品。它给了我 bin/scons 中的 scons 脚本,但没有 sconsign、scons-time 或 scons.bat。我将它放在 /var/www/eggs 的 tar 中,并与 apache 一起提供。
[buildout]
parts =
python
[python]
recipe = zc.recipe.egg:scripts
interpreter = mython
eggs =
scons == 2.0.1
find-links =
http://localhost/eggs/
不确定我是否想继续朝这个方向发展。