在zc.buildout中以鸡蛋为单位

问题描述

有没有一种简单的方法可以使用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/
不知道我是否要继续朝这个方向前进。     

解决方法

        天啊。我查看了SCons的setup.py,这有点混乱。在Mac上安装时,它甚至顽固地仅安装在ѭ3中。它当然不适合与setuptools(因此与zc.buildout)一起使用。 您可以使用
zc.recipe.command
${buildout:executable} setup.py
运行setup.py脚本并将其配置为安装在
parts
子目录中,然后使用单独的部分将所有脚本符号链接到
bin/
中:
[buildout]
parts = scons

[scons-download]
recipe = gocept.download
url = http://prdownloads.sourceforge.net/scons/scons-2.0.1.tar.gz
md5sum = beca648b894cdbf85383fffc79516d18

[scons-install]
recipe = plone.recipe.command
command = ${buildout:executable} ${scons-download:location}/setup.py install --prefix=${buildout:parts-directory}/scons-install
location = ${buildout:parts-directory}/scons-install

[scons]
recipe = cns.recipe.symlink
symlink =
    scons
    scons-time
    sconsign
symlink_base = ${scons-install:location}/bin
symlink_target = ${buildout:bin-directory}
因此,我们完全忽略了setuptools,不构建鸡蛋,而是下载tarball,手动运行
setup.py
,然后对有趣的部分进行符号链接。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...