Menu

#1019 import error

1.5.1
closed-fixed
jython (38)
5
2009-12-07
2009-11-27
jdiligence
No

A script that attempts to import some java classes that extend PyObject fails when run in pydev under jython. It runs and import fine without error from jython console. Using latest version of pydev (1.5.1) and jython (2.5.1) on OS X.

The required jar has been added to the pythonpath in project properties as you can see from the console,output.

-- script --

import sys
for p in sys.path: print p
from eu.maxmo.core.data import *
dsIn = PyDataSet(id="test", name="test")
print dsIn.id

--output--

/Users/john/Development/python/maxmo-test/src
/Users/john/Development/python/maxmo-test/src
/Users/john/Development/java/maxmo/maxmo-core/target/maxmo-core.jar
/Users/john/Development/python/jython-2.5.1/Lib
/Users/john/Development/python/jython-2.5.1/Lib/site-packages
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
/System/Library/Java/Extensions/AppleScriptEngine.jar
/System/Library/Java/Extensions/CoreAudio.jar
/System/Library/Java/Extensions/dns_sd.jar
/System/Library/Java/Extensions/j3daudio.jar
/System/Library/Java/Extensions/j3dcore.jar
/System/Library/Java/Extensions/j3dutils.jar
/System/Library/Java/Extensions/jai_codec.jar
/System/Library/Java/Extensions/jai_core.jar
/System/Library/Java/Extensions/mlibwrapper_jai.jar
/System/Library/Java/Extensions/MRJToolkit.jar
/System/Library/Java/Extensions/QTJava.zip
/System/Library/Java/Extensions/vecmath.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/apple_provider.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/dnsns.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/localedata.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/sunjce_provider.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/sunpkcs11.jar
Traceback (most recent call last):
File "/Users/john/Development/python/maxmo-test/src/test-runner.py", line 14, in <module>
from eu.maxmo.core.data import *
ImportError: No module named eu

---

Discussion

  • jdiligence

    jdiligence - 2009-11-27

    The jar file containing classes to import

     
  • Fabio Zadrozny

    Fabio Zadrozny - 2009-12-07

    Fixed for 1.5.2

    Git
    %h bead8cc
    %ct 1260228528

    A nightly should be available with that fix (so, check it tomorrow and see if it works for you).

     
  • Fabio Zadrozny

    Fabio Zadrozny - 2009-12-07
    • status: open --> closed-fixed
     
  • jdiligence

    jdiligence - 2009-12-10

    I no longer get an import error. Thanks.

    However, script still bombs with another error that doesn't make sense to me. It seems that the java classes loaded don't have access to core jython classes from inside pydev. As they extend PyObject they need access to these. This happens even if I add jython.jar as a project library as shown below.

    -- script --

    import sys
    for p in sys.path: print p
    from eu.maxmo.core.data import PyDataSet, PyTable, PyColumn
    dsIn = PyDataSet(id="test", name="test")
    print dsIn.id

    -- output --
    /Users/john/Development/python/maxmo-test/src
    /Users/john/Development/python/maxmo-test/src
    /Users/john/Development/java/maxmo/maxmo-core/target/maxmo-core.jar
    /Users/john/Development/python/jython-2.5.1/jython.jar
    /Users/john/Development/python/jython-2.5.1/Lib
    /Users/john/Development/python/jython-2.5.1/Lib/site-packages
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
    /System/Library/Java/Extensions/AppleScriptEngine.jar
    /System/Library/Java/Extensions/CoreAudio.jar
    /System/Library/Java/Extensions/dns_sd.jar
    /System/Library/Java/Extensions/j3daudio.jar
    /System/Library/Java/Extensions/j3dcore.jar
    /System/Library/Java/Extensions/j3dutils.jar
    /System/Library/Java/Extensions/jai_codec.jar
    /System/Library/Java/Extensions/jai_core.jar
    /System/Library/Java/Extensions/mlibwrapper_jai.jar
    /System/Library/Java/Extensions/MRJToolkit.jar
    /System/Library/Java/Extensions/QTJava.zip
    /System/Library/Java/Extensions/vecmath.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/apple_provider.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/dnsns.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/localedata.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/sunjce_provider.jar
    /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/sunpkcs11.jar
    __classpath__
    __pyclasspath__/
    Traceback (most recent call last):
    File "/Users/john/Development/python/maxmo-test/src/test-runner.py", line 14, in <module>
    from eu.maxmo.core.data import PyDataSet, PyTable, PyColumn
    java.lang.NoClassDefFoundError: org/python/core/PyObject
    at java.lang.ClassLoader.findBootstrapClass(Native Method)
    at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:946)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at org.python.core.SyspathJavaLoader.loadClass(SyspathJavaLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at org.python.core.Py.findClassEx(Py.java:817)
    at org.python.core.packagecache.SysPackageManager.findClass(SysPackageManager.java:133)
    at org.python.core.packagecache.PackageManager.findClass(PackageManager.java:28)
    at org.python.core.packagecache.SysPackageManager.findClass(SysPackageManager.java:122)
    at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:137)
    at org.python.core.PyObject.__findattr__(PyObject.java:869)
    at org.python.core.imp.import_name(imp.java:771)
    at org.python.core.imp.importName(imp.java:806)
    at org.python.core.ImportFunction.__call__(__builtin__.java:1232)
    at org.python.core.PyObject.__call__(PyObject.java:367)
    at org.python.core.__builtin__.__import__(__builtin__.java:1202)
    at org.python.core.imp.importFromAs(imp.java:884)
    at org.python.core.imp.importFrom(imp.java:860)
    at org.python.pycode._pyx0.f$0(/Users/john/Development/python/maxmo-test/src/test-runner.py:18)
    at org.python.pycode._pyx0.call_function(/Users/john/Development/python/maxmo-test/src/test-runner.py)
    at org.python.core.PyTableCode.call(PyTableCode.java:165)
    at org.python.core.PyCode.call(PyCode.java:18)
    at org.python.core.Py.runCode(Py.java:1204)
    at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:200)
    at org.python.util.jython.run(jython.java:246)
    at org.python.util.jython.main(jython.java:129)

    java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/python/core/PyObject