[wsgi] Python interpreter initialization

Igor Sysoev is at rambler-co.ru
Mon Aug 20 14:45:33 MSD 2007


On Mon, Aug 20, 2007 at 12:15:26PM +0200, Manlio Perillo wrote:

> I need some help for the development of mod_wsgi.
> 
> Before using the Python C API for embedding Python code, the main 
> interpreter must be initialized by calling
>   Py_Initialize();
> 
> This function set a global context.
> 
> 
> In the first version of the code, I'm initializing the interpreter in 
> the init main configuration callback (and only here).

Yes.

> It is possible to customize the Python interpreter by setting some 
> options before calling Py_Initialize.
> These options are available as nginx commands in the main context only.

Yes. init is called after whole http {} part has been processed.

> In the request handler I have added a call to the function 
> Py_IsInitialized(), just to be sure.
> 
> I'm assuming that the main configuration is initialized in the core 
> nginx process and that each one of the worker process simply inherit the 
> Python interpreter context.
> 
> I'm right?

Yes.

> What happens on Windows (where fork is not available)?
> Should I call Py_Initialize in the init process callback, too (calling 
> Py_Initialize two times is a no op).

On Win32 each worker should read and process configuration from the start,
because they are not forks of master process.


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list