0

我想用来transmogrifier将一个 Plone 4 站点的一小段摘录复制到另一个站点。我按照 quintagroup 文档中的说明进行操作,例如这里

我将两者都添加collective.transmogrifierquintagroup.transmogrifier了我的构建中:

[instance]
eggs +=
    Products.Marshall
    collective.transmogrifier
    quintagroup.transmogrifier

zcml +=
    collective.transmogrifier
    quintagroup.transmogrifier

但是,安装的 1.4 版本collective.transmogrifier还不够,因为它缺少模块traverse中的功能utils

  File ".../eggs/plone.app.transmogrifier-1.3-py2.7.egg/plone/app/transmogrifier/atschemaupdater.py", line 8, in <module>
    from collective.transmogrifier.utils import traverse
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File ".../parts/instance/etc/site.zcml", line 15.2-15.55
    ZopeXMLConfigurationError: File ".../parts/instance/etc/package-includes/027-quintagroup.transmogrifier-configure.zcml", line 1.0-1.70
    ZopeXMLConfigurationError: File ".../eggs/quintagroup.transmogrifier-0.5-py2.7.egg/quintagroup/transmogrifier/configure.zcml", line 11.4-11.50
    ZopeXMLConfigurationError: File ".../eggs/plone.app.transmogrifier-1.3-py2.7.egg/plone/app/transmogrifier/configure.zcml", line 9.2-12.8
    ImportError: cannot import name traverse

collective.transmogrifier = 1.5在我的, 中指定了versions.cfg,然后将(为什么?eggs/quintagroup.transmogrifier-0.5-py2.7.egg/EGG-INFO/requires.txt中坚持的更改为collective.transmogrifier<1.5

collective.transmogrifier<=1.5

重建并重新启动后,我能够quintagroup.transmogrifier在 quickinstaller 视图中添加。但是,当我尝试在Generic Setup Tool中导出站点时,我失败了:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module Products.GenericSetup.tool, line 583, in manage_exportSelectedSteps
  Module Products.GenericSetup.tool, line 1038, in _doRunExportSteps
  Module quintagroup.transmogrifier.exportimport, line 72, in exportSiteStructure
  Module collective.transmogrifier.utils, line 118, in constructPipeline
  Module quintagroup.transmogrifier.sitewalker, line 32, in __init__
  Module collective.transmogrifier.utils, line 225, in __init__
AttributeError: Transmogrifier instance has no attribute 'configuration_id'

default我之前是否保存了导出配置文件并没有什么区别。

是否缺少某些配置步骤,或者是否有某种collective.transmogrifier <1.5限制原因?在承担选择白名单内容的任务之前,我想看看这项工作......

4

1 回答 1

1

我以前遇到过这种情况,但在这种情况下我能够避免使用 quintagroup.transmogrifier。

在 master 中的这个提交中删除了 pin (尽管如果你检查setup.py 的历史记录,它会稍微复杂一点)。

所以基本上你将不得不在你的构建中检查那个产品:

[sources]
...
quintagroup.transmogrifier = git https://github.com/collective/quintagroup.transmogrifier.git

并重新运行构建(可能bin/buildout -c develop.cfg)应该这样做,但如果您在生产环境中这样做,这应该被视为短期黑客而不是长期解决方案。长期解决方案是使用 jarn.mkrelease 或 zest.releaser 构建自己的“0.5-tobias”鸡蛋(比 mkrelease 更现代,但更难弄清楚)或在https://github.com/collective/上提出问题quintagroup.transmogrifier.git请求某人为您发布正式版本!

于 2015-07-16T11:45:18.047 回答