Hi all,

I'm trying to deploy a Repoze-based application via mod_wsgi. I'm building Repoze in a buildout. The problem is that I need to get mod_wsgi to execute the WSGI script with buildout's working set of eggs.

The mod_wsgi configuration looks like this:

WSGIDaemonProcess tmp threads=1 processes=4 maximum-requests=10000 python-path=/usr/lib/python2.4/site-packages

      <VirtualHost *:80>
        ServerName my.machine.local
        WSGIScriptAlias / /path/to/bin/zope2.wsgi
        WSGIProcessGroup tmp
        WSGIPassAuthorization On
      </VirtualHost>


Now, this says to create a process pool of Python processes with the given python-path. This is really geared towards the virtualenv use case, where you'd have a custom virtualenv python-path for each project.

In the case of buildout, however, the pythonpath is explicitly for console scripts by munging console scripts and doing sys.path manipulation.

Unfortunately, zope2.wsgi is not a console script, it's just a script that contains:

  from paste.deploy import loadapp

  ini = '/path/to/pasteconfig.ini'
  application = loadapp('config:%s' % ini)

The key here is that this is a script that needs to define a global variable 'application'.

The only way I can make this work, is to paste a block of sys.path manipulation from a console script that buildout has had the opportunity to munge, but that's not exactly a stable solution.

I can see the following possible solutions:

1) Make a buildout recipe that creates a directory with a .pth file for all the eggs in the working set. This would then be able to serve as a python-path above.

2) Make a buildout recipe that generates the zope2.wsgi script as above, but also generates the sys.path munging.

Does one of these exist already? Is there a better way?

For reference: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess

Cheers,
Martin

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to