Search code examples
zopebuildout

I have zopepy in my buildout recipe, but it is not created


I like to have tests in my Zope product; currently I have doctests in some files, but to use them (as far as the module uses Zope functionality), I currently need to copy them into a sandbox directory and transform some imports. I suppose zopepy would help me to run my tests directly where they are, but I currently don't have it.

In my buildout script, I have:

[buildout]
extends = versions.cfg
extensions =
    lovely.buildouthttp
    mr.developer

package-name =

parts +=
    instance
    test
    backup
    paths
    i18nduder
    zopepy

[zopepy]
recipe=zc.recipe.egg
eggs = ${instance:eggs}
interpreter = zopepy
# extra-paths = ${instance:extra-paths}
scripts =

(I hope I didn't cut anything important; of course it is much longer. There are no more occurrences of zopepy.)

When I run buildout, everything looks fine:

...
Generated script '/var/zope-instance/theinstance/bin/i18ndude'.
Generated script '/var/zope-instance/theinstance/bin/duder'.
Installing zopepy.
Updating backup.

But afterwards I simply don't have a zopepy in my bin/ directory, and nowhere else along the PATH of my virtualenv.

What the heck is happening here? How can I debug this? Thanks!


Solution

  • Oh my. I found the answer. Looks quite trivial for someone familiar with buildout. I simply needed to change the scripts assignment to

    scripts = zopepy
    

    (I have no idea why this was changed.) After re-running buildout I had my zopepy script. It seems the interpreter doesn't exist unless it is used for the script.