首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zope2与另一个zope.*包之间的配置冲突

Zope2与另一个zope.*包之间的配置冲突
EN

Stack Overflow用户
提问于 2015-08-26 10:33:29
回答 1查看 252关注 0票数 4

我在下面的setup.py中添加了一个Plone插件

代码语言:javascript
复制
setup(
    ...
    install_requires=[
        ...
        'zope.i18n',
        ...
        'Zope2',
    ],
    ...
)

如果运行bin/instance,就会得到以下跟踪:

代码语言:javascript
复制
  File ".buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 1527, in resolveConflicts
    raise ConfigurationConflictError(conflicts)
zope.configuration.config.ConfigurationConflictError: Conflicting configuration actions
  For: ('utility', <InterfaceClass zope.i18n.interfaces.INegotiator>, '')
    File ".buildout/eggs/zope.i18n-3.7.4-py2.7.egg/zope/i18n/configure.zcml", line 3.2-6.8
        <utility
            provides="zope.i18n.interfaces.INegotiator"
            component="zope.i18n.negotiator.negotiator"
            />
    File ".buildout/eggs/Zope2-2.13.22-py2.7.egg/ZPublisher/i18n.zcml", line 5.2-8.8
        <utility 
            provides="zope.i18n.interfaces.INegotiator"
            component="zope.i18n.negotiator.negotiator"
            />

如果我从zope.i18n中注释掉setup.py,再次运行buildout,那么实例就可以正常启动了。

令人惊讶的是,两个bin/instance文件(在删除zope.i18n之前和之后)都是完全相同的。

所以我对在setup.py上定义同样版本的东西有什么不对的地方一无所知.

最后,在发行版的主configure.zcml上,我有以下一行:

代码语言:javascript
复制
<includeDependencies package="." />

这有关系吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-26 12:09:56

这听起来很奇怪?显然,注册同一实用程序两次是不可能的,但是这两个包都可以吗?我对此很困惑。通常不需要<includeDependencies package="." />部件,因为所有组件都应该由z3c.autoinclude的plone入口点加载。我假设在默认的plone环境中,其中一个组件将不会被加载。

我查了一个4.3.6.使用了zope.i18n的谈判者。

因此,我最好的选择是,您的<includeDependencies package="." />也加载configure.zcml of Zope2,这是不应该发生的。

删除<includeDependencies package="." />,可以解决您的问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32224255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档