尝试在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
答案 0 :(得分:1)
您可以使用wildcard.fixpersitentutilities删除持久化类,请阅读David Breitkreutz的这篇文章,了解详细信息:
http://davidjb.com/blog/2010/06/plone-sitemanager-leftovers-not-the-good-kind/
答案 1 :(得分:0)
如果使用fixpersitentutilities的(仍然是正确的)答案对您不起作用,有时我们会使用这种干净但更长的方式:
1)重新添加产生问题的产品 2)重新安装它 3)手动提供缺少的卸载Generic Setup卸载步骤。
在您的情况下,您需要添加“卸载”配置文件,(至少)一个browserlayer.xml 所以就是这样:
<layers>
<layer name="qPloneDropDownMenu"
interface="Products.qPloneDropDownMenu.browser.interfaces.IQPloneDropDownMenuLayer"
remove="True" />
</layers>
4)再次卸载