[Zope3-Users] Re: Remaking an 'instance' site with zopeproject

Philipp von Weitershausen philipp at weitershausen.de
Thu Oct 4 03:02:51 EDT 2007


George Wright wrote:
> EXCEPT however the ~/Books/src/books/configure.zcml has to be different.
> The contents of my original
> ~/zope3demo/lib/python/books/configure.zcml
> had to be appended to the bottom of the automatically generated
> ~/Books/src/books/configure.zcml

Yep. The idea is with eggs is that each package should load the 
configuration of all its dependencies first before making any registrations.

> AND another EXCEPT:
> There is no equivalent file path to 'books-configure.zcml':
>  ~/zope3demo/etc/package-includes/books-configure.zcml
> where one had an entry like this;
> <include package="books"/>
> 
> Presumably this is now taken care of in the site.zcml which is 
> automatically generated and includes the same line?

Exactly. Those ZCML "slugs" in etc/package-includes where a horrible 
mess and confused most newbies. They were problem maker #1 in all 
trainings (people simply forgot them).

site.zcml (still) is the root ZCML file (zope.conf refers to it, in 
fact, that's why). It includes all other ZCML files. Typically it only 
has to include the application package ("books" in your case) now 
because that application is in charge of loading all the dependencies 
(which happen to bring up most of Zope).

> _________________________________
> I fired it up like this:
> $ cd ~/Books
> $ bin/paster serve deploy.ini
> Starting server in PID 198.
> ------
> 2007-10-02T13:15:34 INFO paste.httpserver.ThreadPool Cannot use 
> kill_thread_limit as ctypes/killthread is not available
> serving on http://127.0.0.1:8080
> ...................
> and all goes well from there! I can add and edit reviews as before.

Great to hear that.


> ____________________________________
> ONE PROBLEM:
> I wasn't able to access ++apidoc++
> In ~/Books/zope.conf I uncommented the 'devmode on' line
> and restarted, logging in as manager. I do get the developer mode 
> warning, but the 'Introspector' tab didn't appear in ZMI and nor does 
> the ++apidoc++ address work.
> I tried adding the lines:
> xmlns:apidoc="http://namespaces.zope.org/apidoc"
> <include package="zope.app.apidoc"/>
> <include package="zope.app.apidoc" file="meta.zcml" />
> to appropriate spots in the site.zcml file

You were on the right track. Unfortunately, that's not enough. 
zope.app.apidoc doesn't make sure its dependnecies are loaded. (We're 
not completely there yet with the eggification in that regard).

zopeproject 0.4.1 actually enables APIDoc by default. You might want to 
look at the apidoc.zcml it generates in the top level sandbox directory. 
TO get the new zopeproject version, use

    easy_install -U zopeproject


> BUT I was plagued with configuration errors like this:
> ........
> File 
> "/Users/georgewright/buildout-eggs/tmpWlIac6/zope.component-3.4.0a1-py2.4.egg/zope/component/_api.py", 
> line 207, in getUtility
> ComponentLookupError: (<InterfaceClass 
> zope.app.applicationcontrol.interfaces.IServerControl>, '')

That's weird. This shouldn't be APIDoc related. This error actually 
occurs when you try to go to the "Server Control" screen of ++etc++process.

Zope isn't in charge of the process anymore. bin/paster is. We should 
really just get rid of that screen, or at least make it handle this case 
gracefully.


> ______________________________________
> ANOTHER PROBLEM:
> I don't get the access logs constantly running in Terminal that I was 
> used to.
> How do I start these up?

Ah, thanks for bringing this up. You can use a logging middleware, such 
as Paste#translogger. Simply edit 'deploy.ini' and change it to read::


[filter-app:main]
use = egg:Paste#translogger
next = zope

[app:zope]
use = egg:HelloWorld

[server:main]
use = egg:Paste#http
host = 127.0.0.1
port = 8080



-- 
http://worldcookery.com -- Professional Zope documentation and training



More information about the Zope3-users mailing list