2

尝试在 Plone 中使用其他产品时出现以下错误。我卸载了以下产品并在没有它的情况下重建了 Plone。但似乎安装时留下了一些东西。关于如何完全删除这个包的任何想法?

这个不再安装

"Products.qPloneDropDownMenu.browser"

Request URL   
http://x.x.x.x:8080/site2/xxx/portal_cache_settings/cache_tool_config

Traceback (innermost last):
    Module ZPublisher.Publish, line 125, in publish
    Module Zope2.App.startup, line 238, in commit
    Module transaction._manager, line 96, in commit
    Module transaction._transaction, line 395, in commit
    Module transaction._transaction, line 495, in _commitResources
    Module ZODB.Connection, line 510, in commit
    Module ZODB.Connection, line 555, in _commit
    Module ZODB.Connection, line 582, in _store_objects
    Module ZODB.serialize, line 407, in serialize
    Module ZODB.serialize, line 416, in _dump
PicklingError: Can't pickle <class 'Products.qPloneDropDownMenu.browser.interfaces.IQPloneDropDownMenuLayer'>: import of module Products.qPloneDropDownMenu.browser.interfaces failed
4

2 回答 2

1

You can use wildcard.fixpersitentutilities to remove the persistent class, read this post from David Breitkreutz for detailed informations:

http://davidjb.com/blog/2010/06/plone-sitemanager-leftovers-not-the-good-kind/

于 2013-04-10T07:53:45.577 回答
0

如果使用 fixpersitentutilities 的(仍然正确的)答案对您不起作用,有时我们会使用这种干净但更长的方式:

1) 重新添加产生问题的产品 2) 重新安装 3) 手动提供缺少的卸载 Generic Setup 卸载步骤。

在您的情况下,您需要添加“卸载”配置文件,以及(至少)一个 browserlayer.xml 所以就是这样:

<layers>
   <layer name="qPloneDropDownMenu"
     interface="Products.qPloneDropDownMenu.browser.interfaces.IQPloneDropDownMenuLayer"
     remove="True" />
</layers>

4)再次卸载

于 2013-04-11T07:47:37.877 回答