jython import search path

R

Russ

I have a Python program that I want to run in Jython so I can get Java
bytecode output. The program runs fine in Python, but when I change
the first line of the main program to make it run in Jython, it fails
to find some of the imported modules. These are just plain Python
imports of code I wrote myself in another directory.

Apparently Jython does not use the PYTHONPATH environment variable. I
created an environment variable called JYTHONPATH just to see what
would happen, but it didn't work either. How am I supposed to tell
Jython where to search for imported modules? Thanks.
 
L

Larry Bates

Russ said:
I have a Python program that I want to run in Jython so I can get Java
bytecode output. The program runs fine in Python, but when I change
the first line of the main program to make it run in Jython, it fails
to find some of the imported modules. These are just plain Python
imports of code I wrote myself in another directory.

Apparently Jython does not use the PYTHONPATH environment variable. I
created an environment variable called JYTHONPATH just to see what
would happen, but it didn't work either. How am I supposed to tell
Jython where to search for imported modules? Thanks.
Maybe Jython expert has the perfect answer but til then.

Did you try:

sys.path.append('path to search')

Usually this works if nothing else does.

-Larry
 
R

Russ

Maybe Jython expert has the perfect answer but til then.

Did you try:

sys.path.append('path to search')

Usually this works if nothing else does.

-Larry

Thanks. That's a good workaround, but I would like to know the
"correct" way to do it too if anyone out there knows.
 
D

Diez B. Roggisch

Russ said:
Thanks. That's a good workaround, but I would like to know the
"correct" way to do it too if anyone out there knows.

That is pretty much an accepted strategy. Another one is to alter the
registry file, which has a property python.path. It might even be possible
to use

java -Dpython.path=<whatever>

to accomplish that - but I'm to lazy to toy around now.

Diez
 
R

Russ

Diez said:
That is pretty much an accepted strategy. Another one is to alter the
registry file, which has a property python.path. It might even be possible
to use

Accepted strategy? It doesn't seem very portable. It assumes that
everyone puts their library
modules in the exact same place. Or do they just figure that changing
the sys.path.append
line is easy enough?
java -Dpython.path=<whatever>

I'm not using Java at all. I just want to generate Java bytecode for
purposes of code analysis
by existing tools.
 
D

Diez B. Roggisch

Accepted strategy? It doesn't seem very portable. It assumes that
everyone puts their library
modules in the exact same place. Or do they just figure that changing
the sys.path.append
line is easy enough?

Portability has nothing to do with it. If you arrange your project in a way
that these paths can be figured out at runtime, it's fine.

If not, you might need some installation routine that will figure them out
when installing the software, hard-coding such paths in some way (as
parameter lists or whatsoever)
I'm not using Java at all. I just want to generate Java bytecode for
purposes of code analysis
by existing tools.

If you are using jython, you are using java.

Diez
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top