Hooking zope.component to any python project

Zope Component Architecture is a set of libraries used for aiding in writing component based applications using python. It provides some useful libraries to handle common patterns such as factory, adapter, multiadapter, and subscribers.

In Inigo, we utilizes Zope Component Architecture widely in our development process as it helps us in decoupling components in our system.

Anyway, lets get straight to the point of this post. Basically, what I'll go through in this post would be one method of hooking zope.component together with a configure.zcml into your current python project. It might not be the best way, but the simplest that I know of.


  • You'll need to have these installed in your python environment: zope.component, zope.configuration.
  • Your project is packaged as an egg (probably possible if not as an egg, but I never tried that)

Setting up

In your project egg module directory, create a file called configure.zcml with this content:

<configure xmlns="http://namespaces.zope.org/zope">

This file will be the starting point for your project's component registration

Loading configure.zcml

In your python project, probably right at the start of the main() function, add this:

from zope.configuration.xmlconfig import xmlconfig
from StringIO import StringIO
<configure xmlns="http://namespaces.zope.org/zope">
<include package="your.project.egg.module"/>

Thats it, and you now can use ZCA in your app like you do in Zope.


Popular posts from this blog

Announcing PlatoCDP, a Plone distribution for enterprises.

Adding simple popup to Plone frontpage

An Open Letter for the Rector of PETRONAS University of Technology