Jython: preload PythonInterpreter with values for use in scripts

Harald Kirsch pifpafpuf at gmx.de
Fri Jul 18 12:55:54 EDT 2003


How can I set variables in PythonInterpreter such that
scripts then run via import can have access to it.

My idea was to go along the lines of:

    PythonInterpreter ip = new PythonInterpreter();
    // make the object about to use the interpreter
    // available to that interpreter
    ip.set("javaCaller", this);
    ip.exec("import mystuff");

Within mystuff.py I wanted to do things like

    m = sys.modules['__main__']
    m.javaCaller.setThoseNiftyFeaturesOfTheCallingJavaObject("hello")

Alas, sys.modules does not contain '__main__'. 

Is there any way to get hold of locals() of PythonInterpreter ip within
a module imported as shown above?

I would expect that execfile allows the above communication,
but then I have to do all the searching for the module myself.
Therefore a solution where the module is simply imported as above
is preferred.

  Thanks,
  Harald.




More information about the Python-list mailing list