У меня проблемы с установкой stxnext.staticdeployment в Plone 3.3.5 на (устаревшем) сервере Suse Linux.
Мои шаги:
stxnext.staticdeployment
к eggs
и zcml
раздел согласно инструкциямbuildout
сценарийВсе работает хорошо, кроме последнего шага, где я получаю следующие ошибки времени выполнения:
ERROR Five Could not import Product Products.CMFPlone
ERROR Application Couldn't install Five
Я что-то не так делаю или меня укусил баг в stxnext.staticdeployment?
Вот это bin/buildout
вывод:
./bin/buildout
Updating zope2.
Updating fake eggs
Updating productdistros.
Installing instance.
Updating zopepy.
Updating zopeskel.
Updating chown.
chown: Running chmod 600 .installed.cfg
Updating backup.
Updating unifiedinstaller.
Updating precompile.
precompiling python scripts in /srv/pstatic/Plone-3.3.5/empty/products
precompiling python scripts in /srv/pstatic/Plone-3.3.5/empty/parts/productdistros
*************** PICKED VERSIONS ****************
[versions]
BeautifulSoup = 3.2.1
five.globalrequest = 1.0
lxml = 3.2.3
stxnext.staticdeployment = 1.1
zope.globalrequest = 1.0
*************** /PICKED VERSIONS ***************
и instance.log
Выслеживать
ERROR Five Could not import Product Products.CMFPlone
Traceback (most recent call last):
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/Products/Five/fiveconfigure.py", line 76, in loadProducts
xmlconfig.include(_context, zcml, package=product)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 207, in feed
self._parser.Parse(data, isFinal)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 348, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/config.py", line 692, in finish
actions = self.handler(context, **args)
File "/srv/pstatic/Plone-3.3.5/buildout-cache/eggs/z3c.autoinclude-0.3.1-py2.4.egg/z3c/autoinclude/zcml.py", line 104, in includePluginsDirective
includeZCMLGroup(_context, info, filename)
File "/srv/pstatic/Plone-3.3.5/buildout-cache/eggs/z3c.autoinclude-0.3.1-py2.4.egg/z3c/autoinclude/zcml.py", line 30, in includeZCMLGroup
include(_context, filename, includable_package)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 207, in feed
self._parser.Parse(data, isFinal)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 348, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/config.py", line 692, in finish
actions = self.handler(context, **args)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 207, in feed
self._parser.Parse(data, isFinal)
File "/srv/pstatic/Plone-3.3.5/Python-2.4/lib/python2.4/xml/sax/expatreader.py", line 348, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/config.py", line 691, in finish
args = toargs(context, *self.argdata)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/config.py", line 1383, in toargs
args[str(name)] = field.fromUnicode(s)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/fields.py", line 229, in fromUnicode
v = vt.fromUnicode(s)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/fields.py", line 139, in fromUnicode
value = self.context.resolve(name)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/config.py", line 184, in resolve
mod = __import__(mname, *_import_chickens)
File "/srv/pstatic/Plone-3.3.5/buildout-cache/eggs/stxnext.staticdeployment-1.1-py2.4.egg/stxnext/staticdeployment/adapters/transformations.py", line 28, in ?
from plone.app.imaging.interfaces import IImageScaling
ZopeXMLConfigurationError: File "/srv/pstatic/Plone-3.3.5/buildout-cache/eggs/Plone-3.3.5-py2.4.egg/Products/CMFPlone/configure.zcml", line 116.4-116.60
ZopeXMLConfigurationError: File "/srv/pstatic/Plone-3.3.5/buildout-cache/eggs/stxnext.staticdeployment-1.1-py2.4.egg/stxnext/staticdeployment/configure.zcml", line 15.4-15.34
ZopeXMLConfigurationError: File "/srv/pstatic/Plone-3.3.5/buildout-cache/eggs/stxnext.staticdeployment-1.1-py2.4.egg/stxnext/staticdeployment/adapters/configure.zcml", line 5.4-10.10
ImportError: No module named imaging.interfaces
и
ERROR Application Couldn't install Five
Traceback (most recent call last):
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/OFS/Application.py", line 786, in install_product
initmethod(context)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/Products/Five/__init__.py", line 28, in initialize
zcml.load_site()
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/Products/Five/zcml.py", line 53, in load_site
_context = xmlconfig.file(file)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 579, in file
include(context, name, package)
File "/srv/pstatic/Plone-3.3.5/Zope-2.10.11-final-py2.4/lib/python/zope/configuration/xmlconfig.py", line 517, in include
assert _context.stack[-1].context is context
AssertionError
Похоже, что в stxnext.staticdeployment отсутствует зависимость plone.app.imaging, которая по умолчанию присутствует в Plone 4, но в Plone 3.x ее необходимо установить явно.
Я разместил этот выпуск здесь: https://github.com/collective/stxnext.staticdeployment/issues/13 но чтобы обойти эту проблему, просто убедитесь, что установлен plone.app.imaging.