猴子补丁以添加缺少的接口



如何使用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"

相关内容

  • 没有找到相关文章

最新更新