1

我正在尝试通过 zcml 设置引擎和会话,以便使用 z3c.saconfig 连接到数据库。我正在使用克隆 4.3.2。

我正在关注一本关于 Plone 4 的书,名为 Professional Plone Develop book,在 buildout.cfg 中的 [instance] 下,它说要放置 zcml-additional 并设置引擎和会话。

下面是 buildout.cfg 的实例部分的样子:

[instance]
<= instance_base
recipe = plone.recipe.zope2instance
http-address = 8080
zcml-additional = 
    <configure xmlns="http://namespaces.zope.org/zope"
               xmlns="http://namespaces.zope.org/db"
               >

        <include package="z3c.saconfig" file="meta.zcml" />
        <db:engine name="testA" url="mysql://uName:uPass@localhost/GPCL_Asset_Tracker"/>
        <db:session engine="testA" />
    </configure>

另外,我有一个名为 gpcl.calibration 的包,在 setup.py 文件中,我在 install_requires 'MySQL-Python' 和 'z3c.saconfig' 下添加了这些包,它们可以正常工作并且不会在构建中引起问题。

不幸的是,我收到了这个错误:

    ZopeSAXParseException: File "/home/pjdowney/Plone/GPCLAssetTrackerD/parts/instance/etc/package-includes/999-additional-overrides.zcml", line 2.0,  duplicate attribute

zcml-additional 是否在 buildout.cfg 之外的其他地方定义?在本书中,我确实注意到它在 [instance] 下方有 http-address 和 user,它们似乎已移至 [buildout] 下方。

4

1 回答 1

3

这是一个错字:你不能xmlns在你的configure元素上同时命名两个属性。按照接下来的<db:engine内容,它可能应该阅读

<configure xmlns="http://namespaces.zope.org/zope"
           xmlns:db="http://namespaces.zope.org/db"
           >
于 2014-11-17T14:28:51.093 回答