[Zope-dev] Zope without Zope

Jim Fulton jim at zope.com
Fri Nov 16 08:17:20 EST 2007


On Nov 15, 2007, at 9:38 PM, Martin Aspeli wrote:

> Hi all,
>
> For fun, I just tried to make use of adapters and utilities,  
> registered with ZCML, in a Pylons application.
>
> I installed Pylons in a virtualenv, and easy_installed  
> zope.component and zope.interface using the KGS index for 3.4. I  
> used zope.configuration (also installed) to load a site.zcml, which  
> currently just has:
>
> 	<configure xmlns="http://namespaces.zope.org/zope">
>    		<include package="zope.component" file="meta.zcml" />
> 	</configure>
>
> That doesn't work - it complains about not finding zope.security.zcml.

That's because the zope.component.zcml supports specifying  
permissions on components.  The zcml support never should have been  
added to zope.component.  This also illustrates the false promise of  
extras.  The package has zcml support which you expected to be able  
to use. After all, it is there.  To use zcml, you have to specify the  
zcml extra.  This brings the rest of zope with it.

I added the extras myself, despite my dislike of extras, because it  
was the only way to make zope.component usable without the rest of  
Zope and without major refactoring and backward incompatibility.

> Then I tried to easy_install zope.security, but this pulled in most  
> of Zope, including the ZODB, ZConfig and zdaemon. That's a real  
> shame - no CA (at least not with ZCML) without having pretty much  
> all of Zope there. :(

But you can use the CA without zcml without the rest of Zope.  This  
should not be under appreciated.

I also think extras are a farce. This should not be under appreciated  
either IMO.

> Actually, I never got to try it further, because this then died with:
>
> Installed /Users/optilude/Development/Pylons/zylons/lib/python2.4/ 
> site-packages/ZConfig-2.5-py2.4.egg
> error: Installed distribution zope.traversing 3.4.0 conflicts with  
> requirement zope.traversing>=3.5.0a1.dev-r78730
>
> Are the Zope eggs ready for prime time? Maybe I should be doing it  
> differently?

Some of them are and some aren't.  zope.component will work with just  
a few packages if you don't use the zcml or persistence support.

> I'm curious about how to go about this, since it seems like an  
> incredibly useful thing to be able to do: Make use of the CA in a  
> non-Zope Python application. :)

You can. You just can't use it's zcml support -- which is highly zope  
specific.  Note that there could conceivably be other zcml support  
that isn't zope specific, but the zcml support in zope.component was  
moved from zope.app where it really should have stayed.

Jim

--
Jim Fulton
Zope Corporation




More information about the Zope-Dev mailing list