From: Paul D. <pau...@ds...> - 2006-11-18 20:06:30
|
On Saturday 18 November 2006 02:24, Charlie Groves wrote: > hmm, that line is in an else block with after an 'if os.name == > 'java':'. os.name is assigned in javaos.py. Does that file exist in > your dist/Lib? yes. > Is dist/Lib in sys.path for you? To answer this question I had to go back to the documentation and figure out exactly how the sys.path stuff works. In the DeveloperGuide it says to make the following script to run jython: -------------------- #!/bin/sh exec java -Dpython.home=<path>/dist/ -jar <path>/dist/jython.jar $* -------------------- Well, by going down this route I get into many problems which would take a while to explain! What I have done instead is the following: -------------------- exec java -Dpython.path=/home/pdrummond/bin/Python-2.3.6/Lib -jar /home/pdrummond/src/jython/2.3/dist/jython.jar $* -------------------- Rather than specify python.home I have just set the python path to point to the python lib directory. This works as I can sucessfully run dist/Lib/test/regrtest.py now. However, when I inspect the sys.path in the jython console, the output is weird: ---------------------------- dist> jython Jython 2.3a0 on java1.5.0_08 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> import sys.path; print sys.path ['', '/home/pdrummond/src/jython/2.3/dist/.', '/home/pdrummond/src/jython/2.3/dist/Lib', '/home/pdrummond/bin/Python-2.3.6/Lib', '/home/pdrummond/src/jython/2.3/dist/__classpath__'] >>> ---------------------------- Looks like "/home/pdrummond/src/jython/2.3/dist is being prefixed to everything! If I remove the python.path property from the exec script and instead specify python.path in the registry file then everything works fine: ---------------------------- bash> cat bin/jython #!/bin/sh exec java -jar /home/pdrummond/src/jython/2.3/dist/jython.jar $* bash> head 2.3/dist/registry # Python Registry -*- ksh -*- # This default registry sets many common options to their default values # All of these settings could be erased with no change in behavior python.path=/home/pdrummond/Python-2.3.6/Lib bash> jython Jython 2.3a0 on java1.5.0_08 (JIT: null) >>> import sys;print sys.path ['', '.', '/home/pdrummond/src/jython/2.3/dist/Lib', '/home/pdrummond/Python-2.3.6/Lib', '__classpath__'] >>> ---------------------------- Note that I must put the registry file in "dist" for jython to pick it up. To summerize, specifying python.path in the registry works but specifying it as a property doesn't! Cheers, Paul Drummond |