我正在尝试通过 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] 下方。