Plone 4:collective.formcriteria卸载现在可以';t导入站点
我在一个站点上安装了collective.formcriteria,然后将其卸载并从构建中删除 当我导出网站时,它工作正常,但尝试导入网站时会出现以下错误:Plone 4:collective.formcriteria卸载现在可以';t导入站点,plone,python-import,buildout,Plone,Python Import,Buildout,我在一个站点上安装了collective.formcriteria,然后将其卸载并从构建中删除 当我导出网站时,它工作正常,但尝试导入网站时会出现以下错误: Traceback (innermost last): Module ZPublisher.Publish, line 127, in publish Module ZPublisher.mapply, line 77, in mapply Module ZPublisher.Publish, line 47, i
Traceback (innermost last):
Module ZPublisher.Publish, line 127, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 47, in call_object
Module OFS.ObjectManager, line 628, in manage_importObject
Module OFS.ObjectManager, line 646, in _importObjectFromFile
Module ZODB.ExportImport, line 92, in importFile
Module transaction._transaction, line 253, in savepoint
Module transaction._transaction, line 250, in savepoint
Module transaction._transaction, line 647, in __init__
Module ZODB.Connection, line 1128, in savepoint
Module ZODB.Connection, line 570, in _commit
Module ZODB.ExportImport, line 175, in _importDuringCommit
ImportError: No module named formcriteria.criteria.relativepath
再次安装此加载项并尝试导入/导出我的站点是否有效,或者是否有其他修复程序
谢谢。在导入期间,ZODB必须重新映射转储的pickle中的持久ID,为此,它必须“加载”导出文件中的所有条目 因此,在重新映射过程中,它将尝试导入每个引用的类。您的导出仍然包含对
collective.formcriteria
类的引用,这就是为什么在导入过程中会出现错误
您可以做两件事:
collective.formcriteria
安装到您的构建中,以便此导入工作。不需要运行安装代码或任何东西,Zope进程只需要能够在导入过程中导入类。您可以在以后再次删除它sys.modules
中,以便为此过程加载
虚拟模块可以是这样的;我把它命名为“placeholder.py”:
from persistent import Persistent
class PlaceHolderClass(Peristent):
def __repr__(self):
return "<Persistent placeholder class for now-removed instances>"
很可能您需要根据当前的情况删除更多此类类
使用此技术不会删除断开的引用;它只允许您将.zexp
文件导入到新实例中您能否也包括日志的完整回溯?回溯:谢谢,但我很快将旧站点的内容导入了新的Plone站点(在我的工作中,我实际上不允许通过CLI访问服务器)。谢谢你的回答,不过+1,你不仅是一个专家,你还知道,如何将它以一种全面的方式传达给人们,非常感谢。
import sys
import placeholder
sys.modules['collective.formcriteria.criteria.relativepath'] = placeholder
placeholder.FormRelativePathCriterion = placeholder.PlaceHolderClass