perfact / zodbsync

Dump and restore objects between a ZODB and a serialized file system structure
GNU General Public License v2.0
12 stars 5 forks source link

Python2 tests fail on Ubuntu #61

Closed viktordick closed 3 years ago

viktordick commented 3 years ago

Describe the bug This is probably not really a problem in zodbsync, but I cannot get the Python2 tests to work under Ubuntu while they work without problems under Archlinux. Starting the ZEO server fails with

ZConfig.SchemaResourceError: could not load package ZODB: No module named zope.interface
      Package name: 'ZODB'
      File name: 'component.xml'
      Package path: None

To Reproduce 1.

 virtualenv --python=python2 venv2
 venv2/bin/pip install zope.mkzeoinstance
 venv2/bin/mkzeoinstance zeo
 zeo/bin/runzeo

2.

Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZEO/runzeo.py", line 399, in <module>
    main()
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZEO/runzeo.py", line 388, in main
    options.realize(args)
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZEO/runzeo.py", line 125, in realize
    ZDOptions.realize(self, *a, **k)
  File "/home/vdick/venv2/lib/python2.7/site-packages/zdaemon/zdoptions.py", line 294, in realize
    self.load_schema()
  File "/home/vdick/venv2/lib/python2.7/site-packages/zdaemon/zdoptions.py", line 342, in load_schema
    self.schema = ZConfig.loadSchema(self.schemafile)
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZConfig/loader.py", line 50, in loadSchema
    return SchemaLoader().loadURL(url)
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZConfig/loader.py", line 157, in loadURL
    return self.loadResource(r)
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZConfig/loader.py", line 360, in loadResource
    schema = ZConfig.schema.parseResource(resource, self)
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZConfig/schema.py", line 32, in parseResource
    xml.sax.parse(resource.file, parser)
  File "/usr/lib/python2.7/xml/sax/__init__.py", line 33, in parse
    parser.parse(source)
  File "/usr/lib/python2.7/xml/sax/expatreader.py", line 111, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/usr/lib/python2.7/xml/sax/expatreader.py", line 220, in feed
    self._parser.Parse(data, isFinal)
  File "/usr/lib/python2.7/xml/sax/expatreader.py", line 336, in start_element
    self._cont_handler.startElement(name, AttributesImpl(attrs))
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZConfig/schema.py", line 113, in startElement
    getattr(self, "start_" + name)(attrs)
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZConfig/schema.py", line 319, in start_import
    src = self._loader.schemaComponentSource(pkg, filename)
  File "/home/vdick/venv2/lib/python2.7/site-packages/ZConfig/loader.py", line 382, in schemaComponentSource
    package=package)
ZConfig.SchemaResourceError: could not load package ZODB: No module named zope.interface
  Package name: 'ZODB'
  File name: 'component.xml'
  Package path: None

This also happens if I pin down the installed version to zope.mkzeoinstance==3.9.6 and the requirements list from Zope 2.13.30 to make sure to get versions compatible with Zope 2.

Expected behavior The ZEO server should start.

Desktop (please complete the following information): Only occurs on Ubuntu. Currently working on Ubuntu 20.04, but I think I remember it also occured with 18.04.

viktordick commented 3 years ago

The problem seems to be related to __init__.py files missing in the zope and zc folder. I do not understand why this is a problem in Ubuntu but not on Archlinux.