469,951 Members | 2,597 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,951 developers. It's quick & easy.

[(J)Python] embedding python

hi all,

here's my problem :

I've embedded a python interpreter in our java application (based on the
NetBeans palteforrm) using the Jython API :
http://www.jython.org/docs/javadoc/index.html

So, i've used the PythonInterpreter class to instanciate an interpreter
and to integrate it but the its environnement doesn't seem to be the
same as the standard jython interpreter (the one that is gived when you
install jython on your machine and that you can use in a DOS shell for
example).

So i've encountered some problems using this embed interpreter : i
test/import/script some stuff in the 'standard' interpreter but it
doesn't always work using my 'embed' interpreter. For example :

----------------------------------------------------------------
C:\jython-2.1\jython
import urllib
print urllib.urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl').read()
----------------------------------------------------------------

#it displays :
<TITLE>What time is it?</TITLE>
<H2> US Naval Observatory Master Clock Time</H2> <H3>
<BR>Mar. 19, 08:56:01 UTC
<BR>Mar. 19, 03:56:01 AM EST
<BR>Mar. 19, 02:56:01 AM CST
<BR>Mar. 19, 01:56:01 AM MST
<BR>Mar. 19, 12:56:01 AM PST
<BR>Mar. 18, 11:56:01 PM YST
<BR>Mar. 18, 10:56:01 PM AST
</H3></B><P><A HREF="http://tycho.usno.navy.mil"
<http://tycho.usno.navy.mil%22>;>Time Service Department, US Nav
Now, doing the same thing in my 'embed' : interpreter :

----------------------------------------------------------import urllib Traceback (innermost last):
File "<string>", line 1, in ?
File "c:\jython-2.1\Lib\urllib.py", line 44, in ?
File "c:\jython-2.1\Lib\javaos.py", line 32, in ?
File "c:\jython-2.1\Lib\re.py", line 7, in ?
File "c:\jython-2.1\Lib\sre.py", line 17, in ?
File "c:\jython-2.1\Lib\sre_compile.py", line 15, in ?
AttributeError: class 'org.python.modules._sre' has no attribute 'MAGIC'
----------------------------------------------------------

It is strange because if i do import again :

--------------------------------import urllib
--------------------------------

#it doesn't tell me anything anymore but ...

-------------------------------------------------------------------------print

urllib.urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl').read()
Traceback (innermost last):
File "<string>", line 1, in ?
AttributeError: module 'urllib' has no attribute 'urlopen'
#it still doesn't work ...
--------------------------------------------------------------------------
I have set 2 environnement values :
DOS> echo %PYTHONPATH%
-->
..;C:\jython-2.1;C:\jython-2.1\Lib;c:\python21;c:\python21\Lib;D:\jython\Lib; d:\jython\Lib\test

(my modules live in 'd:\jython\Lib ')

DOS> echo %PYTHON_HOME%
--> c:\jython-2.1

In my embed interpreter, i couldnt import my own modules from
'd:\jython\Lib', but i solved the problem using the
PythonInterpreter.initialize(...) function :

-------------------------------------------------------------------------------------------------------------------------------
//in my java app :
import java.io.Writer;
import org.python.util.PythonInterpreter;
import org.openide.nodes.Node;
import java.util.Properties;
/**
* This class is used to interpret command lines in python/jython
* It always goes with a Python console class
*/
public class ZJythonInterpreter {
/**
* Default Constructor
* creates a new interpreter and redirects its standard output and
error output on the console's output
* @param out - console's output
* */
public ZJythonInterpreter(Writer out)
{
Properties props = new Properties();
props.setProperty("python.home", "c:\\jython-2.1");
props.setProperty("python.path",
"c:\\jython-2.1;c:\\jython-2.1\\Lib;c:\\python21;c:\\python21\\Lib;d:\\jython \\Lib;d:\\jython\\Lib\\test");
PythonInterpreter.initialize(System.getProperties( ),props,new
String[0]);

this.interpreter = new PythonInterpreter();
this.interpreter.setOut(out);
this.interpreter.setErr(out);
// ....
}
//...
}
--------------------------------------------------------------------------------------------------------------------------------------
For information, i'm using jython 2.1 with python 2.1.3 and jdk1.4.2 on
window$ 2000
Any idea will be welcomed... i'm so bored with this problem
thx

vince

Jul 18 '05 #1
0 1820

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

23 posts views Thread by Robey Holderith | last post: by
4 posts views Thread by Alicia Haumann | last post: by
2 posts views Thread by Roose | last post: by
2 posts views Thread by Squirrel Havoc | last post: by
1 post views Thread by amit | last post: by
reply views Thread by marcell71 | last post: by
14 posts views Thread by Robert Dailey | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.