[replying to private email here, with permission] [Egon Frerich] > maybe you are interested in this. > > I installed Zope 3 (version 3.2) in python 2.4.2 site-packages (Windows > XP Home - but I assume this is not important).
Windows isn't relevant to the problem you hit, no. > Then I installed ZODB with ZODB-installer (why? - I assumed then the ZODB > documentation would be installed too. But that is not the case). Windows _is_ relevant to this part, though: there's no conventional place for a distutils installer to put documentation on Windows, so the Windows installer doesn't even try. You can, however, download the ZODB tarball and extract its doc/ directory. That contains, among other things, a PDF version of the ZODB Programming Guide: http://www.zope.org/Wikis/ZODB/FrontPage/guide/index.html The version on the web is in fact for ZODB 3.6 (I regenerated & replaced the docs there as part of releasing ZODB 3.6.0). > After that I tried to start a Zope 3 instance. But that was not possible > - I have got an error message: python couldn't find > zope.interface.implementer. > > (Precisely: zope.app.principalannotation.__init__ imports interface from > zope and 'calls' interface.implementer. 'implementer' is not in interface > but a class in interface.declarations. interface.__init__ imports > implementer from interface.declarations) > > I uninstalled Zope 3 version 3.2 and installed it again. Now I could > start Zope. > > So: if you install ZODB after Zope 3 'implementer' get lost (maybe only > under Windows). That part will happen on all platforms. > I looked at the ZODB installation log. There I found: > - - some zope files are installed too, for example interface.__init__ > - - but not 'interface.declarations' and therefore I assume > interface.__init__ in ZODB is not the same as in the Zope 3 installer. While it's not _intended_ that you install ZODB "on top of" an existing Zope installation, this does point to a problem with how things are stitched together. The immediate cause is that ZODB 3.6 uses an older version of zope.interface than Zope 3.2 uses. That's good enough for everything ZODB needs from it, but not good enough for what Zope 3.2 needs. Since Zope 3.2 and ZODB 3.6 both install zope.interface, the last of those two you install "wins". A complication is that Zope 2.9 also uses ZODB 3.6, and also installs zope.interface. ZODB 3.6 uses this version of zope.interface: Zope3/tags/ZopeX3-3.0.0-Zope-2.8-a4/src/zope/interface because that's the tag Zope 2.9 development used for its copy of zope.interface at the time. I see that someone changed Zope 2.9 to use tag: Zope3/tags/Zope-3.2.0/src/zope/interface instead before Zope 2.9 final got released, but ZODB wasn't changed to match. If ZODB 3.6 had been changed to match, you wouldn't have had a problem here. That's my fault, and I apologize for the inconvenience. Alas, I'm not sure it won't happen again -- while sharing packages across projects has many attractions, it also creates that many more opportunities for "related" projects to get out of synch wrt the package versions they include, and it would take real effort to coordinate which package versions all related projects include. While there's nothing wrong with "real effort", the _kind_ of real effort needed is akin to teaching a family of cats spread across the globe to dance in unison with each other ;-) _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev