[Grok-dev] Re: Bug on windows

Philipp von Weitershausen philipp at weitershausen.de
Thu Aug 16 07:10:27 EDT 2007

Max M wrote:
> Creating template grokproject
>   Recursing into bootstrap
>     .\GrokTest\bootstrap\bootstrap.py already exists (same content)
>   .\GrokTest\buildout.cfg already exists (same content)
>   .\GrokTest\setup.py already exists (same content)
>   Recursing into src
>     Recursing into +package+
>       .\GrokTest\src\groktest\app.py already exists (same content)
>       Recursing into +module+_templates
>         .\GrokTest\src\groktest\app_templates\index.pt already exists 
> (same cont
> ent)
>       .\GrokTest\src\groktest\README.txt already exists (same content)
>       .\GrokTest\src\groktest\__init__.py already exists (same content)
>       .\GrokTest\src\groktest\configure.zcml already exists (same content)
> Running C:\Python24\python.exe setup.py egg_info
> Generated script 'D:\\zope3\\GrokTest\\bin\\buildout'.
> C:\Python24\python.exe: can't open file 
> 'D:\zope3\GrokTest\bin\buildout': [Errno
>  2] No such file or directory
> Traceback (most recent call last):
>   File "C:\Python24\Scripts\grokproject-script.py", line 7, in ?
>     sys.exit(
>   File 
> "c:\python24\lib\site-packages\grokproject-0.3dev_r73355-py2.4.egg\grokpr
> oject\__init__.py", line 108, in main
>     os.environ) == 0
> AssertionError

You're using a terribly old grokproject version (0.3dev). The error 
you're getting is due to that version's lack of robustness when spawning 
processes to run buildout.

The latest grokproject works on Windows, except that we still use 
zc.zope3recipes which gained Windows support only recently so that it 
hasn't been released yet.

I favour an instance-less, Paste-based approach anyway. There's a branch 
of grokproject that creates a Paste application instead of a traditional 
Zope 3 instance.

Here's what you can do to get there by yourself:

1. Get the latest grokproject and run it. It should run through and dump
    a "bin\zopectl" script (which won't work, that's why we install Paste
    in the next steps).

2. Add a Paste-friendly application factory to your package
    ('src\YOUR_PACKAGE') by downloading application.py from [1] into the

3. Add the following section to buildout.cfg::

     recipe = zc.recipe.egg
     eggs = YOUR_EGG

   Then make sure the 'paste' section is in the list of installable parts
   in [buildout]:

     parts = app data zopectl test paste

4. Create a top-level 'deploy.ini' file with the following contents::

     paste.app_factory = YOUR_PACKAGE.application:application_factory
     conf = zope.conf

     use = egg:Paste#http
     host =
     port = 8080

5. Create a top-level 'zope.conf' with the following contents::

      site-definition PATH_TO_DIR/parts/app/site.zcml

          path PATH_TO_DIR/parts/data/Data.fs

          formatter zope.exceptions.log.Formatter
          path STDOUT

6. Run "bin\buildout". You'll then get a new executable, "bin\paster"
    which you can invoke like this::

      bin\paster serve deploy.ini


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

More information about the Grok-dev mailing list