MORE INFO
mdefreitas at sikorsky.com
mdefreitas at sikorsky.com
Fri Apr 28 16:14:22 EDT 2000
> Do you want to run several python scripts (and several ui.commands
> C code) concurently (how would you synchronize?) ?
I do not want to run concurrently, I just want to run in one thread of
execution, but recursively.
> Note that if all you want is to have C code that calls Python
> code that calls C code (through a module) that calls Python code
> without threads, PyRun_XXX functions are re-entrant.
Thanks! That's what I needed to know. I now modified (and simplified)
my code as follows:
void interp(char *script) {
static int nest_level = 0;
FILE *fd = fopen(script, "r");
if (nest_level == 0) {
Py_Initialize();
PyRun_SimpleString("import ui\n"); // import my ui
}
nest_level++;
PyRun_SimpleFile(fd, script);
nest_level--;
if (nest_level == 0) Py_Finalize();
}
The only problem is that the nested script that is run "remembers" the
variable settings from it's caller. Is there a way to give each nested
python script a fresh, clean environment? The nested script should not
effect the environment of it's caller either. Is that what the global
and local dictionaries for the API function PyRun_File are for? If so,
is there any examples on their usage. The C/API doc isn't all that
explicit.
Thanks for the help.
Sent via Deja.com http://www.deja.com/
Before you buy.
More information about the Python-list
mailing list