After having to go through this again and again, I think it’s time to take some note for future references. A common buildout.cfg:-

[buildout]
newest = false
parts = 
    pylons
    omelette
    paster-serve
find-links = http://pylonshq.com/download/0.9.7
unzip = true
extensions = gp.vcsdevelop
vcs-extend-develop = git+git://github.com/countergram/PylonsTemplates.git#egg=PylonsTemplates
develop = clinic

[pylons] recipe = zc.recipe.egg interpreter = python eggs = nose>=0.11.1 Paste>=1.7.2 PasteScript>=1.7.3 PasteDeploy>=1.3.3 Pylons==0.9.7 SQLAlchemy==0.5.5 Jinja2==2.1.1 FormAlchemy==1.2.3

[omelette] recipe = collective.recipe.omelette eggs = ${pylons:eggs}

[paster-serve] recipe = zc.recipe.egg eggs = ${pylons:eggs} arguments = args=['serve', '--reload', 'clinic/development.ini'] scripts = paster=run

The issue here is with the develop eggs, both in develop = and vcs-extend-develop. The buildout run fine, and in develop-eggs directory, I could see two eggs were created:-

clinic.egg-link PylonsTemplates.egg-link  setuptools.egg-link

But those two eggs were nowhere in the list of included path within the custom interpreter script sys.path. Only then I realized that buildout just create the eggs. We need to explicitly ‘install’ the eggs in order to use it, just like any other eggs we have. So:-

[pylons]
recipe = zc.recipe.egg
interpreter = python
eggs =
    nose>=0.11.1
    Paste>=1.7.2
    PasteScript>=1.7.3
    PasteDeploy>=1.3.3
    Pylons==0.9.7
    SQLAlchemy==0.5.5
    Jinja2==2.1.1
    FormAlchemy==1.2.3
    PylonsTemplates
    clinic

Yup, we must enable the eggs in any eggs = for buildout that using zc.recipe.egg. Hopefully I won’t forget about this again next time.