Bika LIMS:ImportError 没有名为 parse 的模块

Bika LIMS : ImportError No module named parse

我正在尝试安装 bika.lims

这是我运行这个命令sudo -u plone_daemon bin/client1 fg

时的错误日志

Zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/usr/local/Plone/zeocluster/parts/client1/etc/site.zcml", line 12.2-12.39 ZopeXMLConfigurationError: File "/usr/local/Plone/buildout-cache/eggs/Products.CMFPlone-4.3.9-py2.7.egg/Products/CMFPlone/meta.zcml", line 42.4-46.10

完整追溯

2016-12-14 09:00:11 INFO ZServer HTTP server started at Wed Dec 14 09:00:11 2016
    Hostname: 0.0.0.0
    Port: 8080
2016-12-14 09:00:18 INFO Products.PloneHotfix20160419 Applied publishing patch
2016-12-14 09:00:18 INFO Products.PloneHotfix20160419 Applied dexterity patch
2016-12-14 09:00:18 INFO Products.PloneHotfix20160419 Hotfix installed
2016-12-14 09:00:19 INFO ZEO.ClientStorage zeostorage ClientStorage (pid=4042) created RW/normal for storage: '1'
2016-12-14 09:00:19 INFO ZEO.cache created temporary cache file '<fdopen>'
2016-12-14 09:00:19 INFO ZEO.ClientStorage zeostorage Testing connection <ManagedClientConnection ('127.0.0.1', 8100)>
2016-12-14 09:00:19 INFO ZEO.zrpc.Connection(C) (127.0.0.1:8100) received handshake 'Z3101'
2016-12-14 09:00:19 INFO ZEO.ClientStorage zeostorage Server authentication protocol None
2016-12-14 09:00:19 INFO ZEO.ClientStorage zeostorage Connected to storage: ('localhost', 8100)
2016-12-14 09:00:19 INFO ZEO.ClientStorage zeostorage No verification necessary -- empty cache
2016-12-14 09:00:21 INFO ZEO.ClientStorage zeostorage Disconnected from storage: "('localhost', 8100)"
Traceback (most recent call last):
  File "/usr/local/Plone/zeocluster/parts/client1/bin/interpreter", line 307, in <module>
    exec(compile(__file__f.read(), __file__, "exec"))
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/Zope2/Startup/run.py", line 76, in <module>
    run()
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/Zope2/Startup/run.py", line 22, in run
    starter.prepare()
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/Zope2/Startup/__init__.py", line 92, in prepare
    self.startZope()
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/Zope2/Startup/__init__.py", line 268, in startZope
    Zope2.startup()
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/Zope2/__init__.py", line 47, in startup
    _startup()
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/Zope2/App/startup.py", line 118, in startup
    load_zcml()
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/Zope2/App/startup.py", line 52, in load_zcml
    load_site()
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/Zope2/App/zcml.py", line 46, in load_site
    _context = xmlconfig.file(site_zcml)
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 649, in file
    include(context, name, package)
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
    processxmlfile(f, context)
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
    parser.parse(src)
  File "/usr/local/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 110, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/local/Plone/Python-2.7/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/usr/local/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 213, in feed
    self._parser.Parse(data, isFinal)
  File "/usr/local/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 365, in end_element_ns
    self._cont_handler.endElementNS(pair, None)
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
    self.context.end()
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
    self.stack.pop().finish()
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
    actions = self.handler(context, **args)
  File "/usr/local/Plone/buildout-cache/eggs/Zope2-2.13.24-py2.7.egg/OFS/metaconfigure.py", line 46, in loadProducts
    xmlconfig.include(_context, zcml, package=product)
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
    processxmlfile(f, context)
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
    parser.parse(src)
  File "/usr/local/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 110, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/local/Plone/Python-2.7/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/usr/local/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 213, in feed
    self._parser.Parse(data, isFinal)
  File "/usr/local/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 365, in end_element_ns
    self._cont_handler.endElementNS(pair, None)
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
    self.context.end()
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
    self.stack.pop().finish()
  File "/usr/local/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
    actions = self.handler(context, **args)
  File "/usr/local/Plone/buildout-cache/eggs/z3c.autoinclude-0.3.5-py2.7.egg/z3c/autoinclude/zcml.py", line 101, in includePluginsDirective
    info = PluginFinder(dotted_name).includableInfo(zcml_to_look_for)
  File "/usr/local/Plone/buildout-cache/eggs/z3c.autoinclude-0.3.5-py2.7.egg/z3c/autoinclude/plugin.py", line 18, in includableInfo
    groups = zcml_to_include(plugin_dottedname, zcml_to_look_for)
  File "/usr/local/Plone/buildout-cache/eggs/z3c.autoinclude-0.3.5-py2.7.egg/z3c/autoinclude/plugin.py", line 36, in zcml_to_include
    filename = resource_filename(dotted_name, zcmlgroup)
  File "/usr/local/Plone/buildout-cache/eggs/setuptools-20.1.1-py2.7.egg/pkg_resources/__init__.py", line 1149, in resource_filename
    return get_provider(package_or_requirement).get_resource_filename(
  File "/usr/local/Plone/buildout-cache/eggs/setuptools-20.1.1-py2.7.egg/pkg_resources/__init__.py", line 424, in get_provider
    __import__(moduleOrReq)
  File "/usr/local/Plone/buildout-cache/eggs/bika.lims-3.1.11-py2.7.egg/bika/lims/__init__.py", line 15, in <module>
    from bika.lims.validators import *
  File "/usr/local/Plone/buildout-cache/eggs/bika.lims-3.1.11-py2.7.egg/bika/lims/validators.py", line 4, in <module>
    from bika.lims.utils import to_utf8
  File "/usr/local/Plone/buildout-cache/eggs/bika.lims-3.1.11-py2.7.egg/bika/lims/utils/__init__.py", line 19, in <module>
    from weasyprint import HTML, CSS
  File "/usr/local/Plone/buildout-cache/eggs/WeasyPrint-0.19.2-py2.7.egg/weasyprint/__init__.py", line 304, in <module>
    from .css import PARSER, preprocess_stylesheet
  File "/usr/local/Plone/buildout-cache/eggs/WeasyPrint-0.19.2-py2.7.egg/weasyprint/css/__init__.py", line 31, in <module>
    from .validation import preprocess_declarations
  File "/usr/local/Plone/buildout-cache/eggs/WeasyPrint-0.19.2-py2.7.egg/weasyprint/css/validation.py", line 26, in <module>
    from ..images import LinearGradient, RadialGradient
  File "/usr/local/Plone/buildout-cache/eggs/WeasyPrint-0.19.2-py2.7.egg/weasyprint/images.py", line 22, in <module>
    import cairosvg.parser
  File "/usr/local/Plone/buildout-cache/eggs/CairoSVG-2.0.0-py2.7.egg/cairosvg/__init__.py", line 29, in <module>
    from . import surface
  File "/usr/local/Plone/buildout-cache/eggs/CairoSVG-2.0.0-py2.7.egg/cairosvg/surface.py", line 27, in <module>
    from .defs import (
  File "/usr/local/Plone/buildout-cache/eggs/CairoSVG-2.0.0-py2.7.egg/cairosvg/defs.py", line 24, in <module>
    from .bounding_box import calculate_bounding_box, is_non_empty_bounding_box
  File "/usr/local/Plone/buildout-cache/eggs/CairoSVG-2.0.0-py2.7.egg/cairosvg/bounding_box.py", line 27, in <module>
    from .helpers import PATH_LETTERS, normalize, point, size
  File "/usr/local/Plone/buildout-cache/eggs/CairoSVG-2.0.0-py2.7.egg/cairosvg/helpers.py", line 26, in <module>
    from .url import parse_url
  File "/usr/local/Plone/buildout-cache/eggs/CairoSVG-2.0.0-py2.7.egg/cairosvg/url.py", line 24, in <module>
    from urllib.parse import urljoin, urlparse
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/usr/local/Plone/zeocluster/parts/client1/etc/site.zcml", line 12.2-12.39
    ZopeXMLConfigurationError: File "/usr/local/Plone/buildout-cache/eggs/Products.CMFPlone-4.3.9-py2.7.egg/Products/CMFPlone/meta.zcml", line 42.4-46.10
    ImportError: No module named parse

有什么想法吗?

您正在使用的依赖项 "CairoSVG"-2.0.0 旨在与 Python-3 一起使用,这可能就是为什么安装说明说要使用与 [兼容的较低版本=20=]-2。 bika.lims-repo 的构建配置将 CairoSVG 固定到版本 1.0.20:

https://github.com/bikalabs/bika.lims/blob/master/buildout.cfg

相应地调整您的 buildout-config,运行 buildout 并重新启动 server/clients。