如何使用collective.monkeypatcher在someproduct
中添加IFooBar
?
这是我尝试过的,它是错误的(因为原始产品中不存在IFooBar
。
<monkey:patch description="Create missing FooBar interface"
class="someproduct.interfaces.IFooBar"
original="IFooBar"
replacement="myproduct.patches.IFooBar"
docstringWarning="true" />
错误为ConfigurationError: ('Invalid value for', 'class', 'ImportError: Module someproduct.interfaces has no global IFooBar')
。
我的最终目标是跳过此错误:当我尝试激活/停用附加组件时收到PicklingError: Can't pickle <class 'someproduct.interfaces.IFooBar'>: attribute lookup someproduct.interfaces.IFooBar failed
。
这是因为我已经安装了具有IFooBar
的新版本someproduct
,然后我恢复到旧版本(尚未IFooBar
(,而无需卸载附加组件。
更新:
替换行:
class="someproduct.interfaces.IFooBar"
跟
class="someproduct.interfaces"
这是一回事。错误:ConfigurationError: Original IFooBar in <module 'someproduct.interfaces' from '/plone/buildout-cache/eggs/someproduct-1.2-py2.7.egg/some/path/interfaces.pyc'> not found
.
哦。只需添加:ignoreOriginal="true"