## org.python.util
Class PythonInterpreter

    java.lang.Object
      org.python.util.PythonInterpreter

Direct Known Subclasses:
  InteractiveInterpreter

    public class PythonInterpreter

extends Object

The PythonInterpreter class is a standard wrapper for a Jython interpreter for use embedding in a Java application.

Constructor Summary
`PythonInterpreter()` Create a new Interpreter with an empty dictionary
`PythonInterpreter(PyObject dict)` Create a new interpreter with the given dictionary to use as its namespace
`PythonInterpreter(PyObject dict, PySystemState systemState)`

Method Summary
`void` `cleanup()`
`PyCode` `compile(Reader reader)`
`PyCode` `compile(Reader reader, String filename)`
`PyCode` `compile(String script)` Compile a string of Python source as either an expression (if possible) or module.
`PyCode` `compile(String script, String filename)`
`PyObject` `eval(PyObject code)` Evaluate a Python code object and return the result
`PyObject` `eval(String s)` Evaluate a string as Python source and return the result
`void` `exec(PyObject code)` Execute a Python code object in the local namespace
`void` `exec(String s)` Execute a string of Python source in the local namespace
`void` `execfile(InputStream s)`
`void` `execfile(InputStream s, String name)`
`void` `execfile(String filename)` Execute a file of Python source in the local namespace
`PyObject` `get(String name)` Get the value of a variable in the local namespace

`

`<T> T`

`

`get(String name, Class<T> javaclass)`
Get the value of a variable in the local namespace Value will be returned as an instance of the given Java class.

`PyObject` `getLocals()`
`static void` `initialize(Properties preProperties, Properties postProperties, String[] argv)` Initializes the jython runtime.
`void` `set(String name, Object value)` Set a variable in the local namespace
`void` `set(String name, PyObject value)` Set a variable in the local namespace
`void` `setErr(OutputStream outStream)`
`void` `setErr(PyObject outStream)`
`void` `setErr(Writer outStream)`
`void` `setIn(InputStream inStream)` Set a java.io.InputStream to use for the standard input stream
`void` `setIn(PyObject inStream)` Set the Python object to use for the standard input stream
`void` `setIn(Reader inStream)`
`void` `setLocals(PyObject d)`
`void` `setOut(OutputStream outStream)` Set a java.io.OutputStream to use for the standard output stream
`void` `setOut(PyObject outStream)` Set the Python object to use for the standard output stream
`void` `setOut(Writer outStream)`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PythonInterpreter

    public PythonInterpreter()

  Create a new Interpreter with an empty dictionary

### PythonInterpreter

    public PythonInterpreter(PyObject dict)

  Create a new interpreter with the given dictionary to use as its namespace

### PythonInterpreter

    public PythonInterpreter(PyObject dict,
                             PySystemState systemState)

Method Detail

### initialize

    public static void initialize(Properties preProperties,
                                  Properties postProperties,
                                  String[] argv)

  Initializes the jython runtime. This should only be called once, and should be called before any other python objects are created (including a PythonInterpreter).

  Parameters:
    `preProperties` - A set of properties. Typically System.getProperties() is used. PreProperties override properties from the registry file.
    `postProperties` - An other set of properties. Values like python.home, python.path and all other values from the registry files can be added to this property set. PostProperties will override system properties and registry properties.
    `argv` - Command line argument. These values will assigned to sys.argv.

### setIn

    public void setIn(PyObject inStream)

  Set the Python object to use for the standard input stream

  Parameters:
    `inStream` - Python file-like object to use as input stream

### setIn

    public void setIn(Reader inStream)

### setIn

    public void setIn(InputStream inStream)

  Set a java.io.InputStream to use for the standard input stream

  Parameters:
    `inStream` - InputStream to use as input stream

### setOut

    public void setOut(PyObject outStream)

  Set the Python object to use for the standard output stream

  Parameters:
    `outStream` - Python file-like object to use as output stream

### setOut

    public void setOut(Writer outStream)

### setOut

    public void setOut(OutputStream outStream)

  Set a java.io.OutputStream to use for the standard output stream

  Parameters:
    `outStream` - OutputStream to use as output stream

### setErr

    public void setErr(PyObject outStream)

### setErr

    public void setErr(Writer outStream)

### setErr

    public void setErr(OutputStream outStream)

### eval

    public PyObject eval(String s)

  Evaluate a string as Python source and return the result

### eval

    public PyObject eval(PyObject code)

  Evaluate a Python code object and return the result

### exec

    public void exec(String s)

  Execute a string of Python source in the local namespace

### exec

    public void exec(PyObject code)

  Execute a Python code object in the local namespace

### execfile

    public void execfile(String filename)

  Execute a file of Python source in the local namespace

### execfile

    public void execfile(InputStream s)

### execfile

    public void execfile(InputStream s,
                         String name)

### compile

    public PyCode compile(String script)

  Compile a string of Python source as either an expression (if possible) or module. Designed for use by a JSR 223 implementation: "the Scripting API does not distinguish between scripts which return values and those which do not, nor do they make the corresponding distinction between evaluating or executing objects." (SCR.4.2.1)

### compile

    public PyCode compile(Reader reader)

### compile

    public PyCode compile(String script,
                          String filename)

### compile

    public PyCode compile(Reader reader,
                          String filename)

### getLocals

    public PyObject getLocals()

### setLocals

    public void setLocals(PyObject d)

### set

    public void set(String name,
                    Object value)

  Set a variable in the local namespace

  Parameters:
    `name` - the name of the variable
    `value` - the value to set the variable to. Will be automatically converted to an appropriate Python object.

### set

    public void set(String name,
                    PyObject value)

  Set a variable in the local namespace

  Parameters:
    `name` - the name of the variable
    `value` - the value to set the variable to

### get

    public PyObject get(String name)

  Get the value of a variable in the local namespace

  Parameters:
    `name` - the name of the variable
  Returns:
    the value of the variable, or null if that name isn't assigned

### get

    public <T> T get(String name,
                     Class<T> javaclass)

  Get the value of a variable in the local namespace Value will be returned as an instance of the given Java class. `interp.get("foo", Object.class)` will return the most appropriate generic Java object.

  Parameters:
    `name` - the name of the variable
    `javaclass` - the class of object to return
  Returns:
    the value of the variable as the given class, or null if that name isn't assigned

### cleanup

    public void cleanup()

Jython homepage