Невозможно использовать Diazo (plone.app.theming) на Centos

Я сделал веб-портал на моем Mac, используя plone4.1 и Diazo.

Сейчас я пытаюсь развернуть его на моем сервере (CentOs), где есть еще один сайт с plone4.0.5 + коллективный xdv.

Когда я запускаю сайт (в новой сборке) с моей диазотемой, я получаю следующие строки через оболочку (например, fg):

2011-09-27 09:32:10 ERROR plone.transformchain Unexpected error whilst trying to apply transform chain
Traceback (most recent call last):
  File "/home/plone/.buildout/eggs/plone.transformchain-1.0-py2.6.egg/plone/transformchain/transformer.py", line 42, in __call__
    newResult = handler.transformIterable(result, encoding)
  File "/home/plone/.buildout/eggs/plone.app.theming-1.0b8-py2.6.egg/plone/app/theming/transform.py", line 205, in transformIterable
    transform = self.setupTransform()
  File "/home/plone/.buildout/eggs/plone.app.theming-1.0b8-py2.6.egg/plone/app/theming/transform.py", line 150, in setupTransform
    xsl_params=xslParams,
  File "/home/plone/.buildout/eggs/diazo-1.0rc3-py2.6.egg/diazo/compiler.py", line 106, in compile_theme
    read_network=read_network,
  File "/home/plone/.buildout/eggs/diazo-1.0rc3-py2.6.egg/diazo/rules.py", line 160, in process_rules
    rules_doc = fixup_themes(rules_doc)
  File "/home/plone/.buildout/eggs/diazo-1.0rc3-py2.6.egg/diazo/utils.py", line 49, in __call__
    result = self.xslt(*args, **kw)
  File "xslt.pxi", line 568, in lxml.etree.XSLT.__call__ (src/lxml/lxml.etree.c:120289)
XSLTApplyError: xsltValueOf: text copy failed

В чем дело?

4 ответа

У меня была точно такая же проблема, и это связано со старым libxml2/libxslt. Добавьте эти строки в вашу сборку:

[buildout]
parts =
     lxml # keep lxml as the first one!
     ...
     instance

[lxml]
recipe = z3c.recipe.staticlxml
egg = lxml
libxml2-url = ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz
libxslt-url = ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz
static-build = true
force = false

См. Plone - XSLTApplyError: xsltValueOf: копирование текста не выполнено. Вероятно, у вас есть устаревший libxml, как это всегда имеет место со старым дистрибутивом, таким как CentOS.

Используйте z3c.recipe.staticlxml.

Похоже, у вас могут быть слишком старые версии libxml2 и / или libxslt. Я столкнулся с идентичными проблемами с libxml2 2.6.26 и libxslt 1.1.17. После обновления до 2.7.8 и 1.2.26 (соответственно) проблемы ушли.

Если вы не можете обновить библиотеки локально, вы можете довольно быстро двигаться вперед, используя рецепт "z3c.recipe.staticlxml" в вашей сборке:

[lxml]
recipe = z3c.recipe.staticlxml
egg = lxml

Просто не забудьте удалить любой существующий lxml egg в каталоге eggs (или, возможно, в вашем ~/.buildout/eggs cache, в зависимости от того, как ваш ~/.buildout/default.cfg он настроил) сначала.

Я только получил это, чтобы работать, используя Plone 4.2.1 на Сервере OS X 10.8, но только однажды я использовал унифицированный установщик. Я поднял libxml2 до версии 2.8.0. В то время, когда я пытался это сделать, версия 2.9.0 libxml2 была повреждена для OS X 10.8.

Другие вопросы по тегам