2

根据:

要在Plone 4.3中使用grok 风格的声明,必须通过带有setuptools额外要求的 buildout安装Dexterity:grok 和关系(参考plone.app.dexterity 的 setup.py 中的定义)。但是,想要代表最终用户执行此配置的附加开发人员应该怎么做呢?extras_require

使用我的collective.project插件,我extras_require从plone.app.dexterity 复制了:

setup(
    author='Alex Clark',
    author_email='aclark@aclark.net',
    description='Demo app: project management with dexterity content types.',
    entry_points={
        'z3c.autoinclude.plugin': 'target = plone',
    },
    extras_require = {
        'test': [
            'plone.app.testing',
            'unittest2'
            ],
        'grok': [
            'five.grok',
            'plone.directives.dexterity',
            'plone.directives.form >=1.1dev',
            ],
        'relations': [
            'plone.app.relationfield',
            'plone.app.intid',
            'z3c.relationfield',
            ]
    },

这允许最终用户简单地通过添加到鸡蛋列表来安装collective.project,例如

[plone]
recipe = plone.recipe.zope2instance
eggs =
  Pillow
  Plone
  collective.project

这是一个合理的方法吗?

4

1 回答 1

3

不它不是。不要extras_require从 plone.app.dexterity 复制,它没有帮助(尽管可能包括 extras_require 作为 install_requires 会起作用,但这会破坏 extras_require 的目的)

但是,您可以使用与 Buildoutextras_requiresetup.py中指定的类似语法:

install_requires=[
    'setuptools',
    'plone.app.dexterity[grok]',
],
于 2012-10-31T00:22:08.450 回答