gpt4 book ai didi

plone - Zope2 和另一个 zope.* 包之间的 ZCML 配置冲突

转载 作者:行者123 更新时间:2023-12-01 02:06:24 25 4
gpt4 key购买 nike

我有一个带有以下 setup.py 的 Plone 插件

setup(
...
install_requires=[
...
'zope.i18n',
...
'Zope2',
],
...
)

如果我运行 bin/instance我得到以下回溯:
  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我有这条线:

<includeDependencies package="." />

这有什么关系吗?

最佳答案

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

我在 Plone 4.3.6 上签到了...使用了 zope.i18n 的 Negotiator。

所以我最好的选择是,您的 <includeDependencies package="." /> ,还加载了Zope2的configure.zcml,这不应该发生。

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

关于plone - Zope2 和另一个 zope.* 包之间的 ZCML 配置冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com