org.lemsl.jlems?
@pgleeson I have a fresh copy of neuroConstruct checked out yesterday inside a Docker container based on Ubuntu. I've done the usual:
./updatenC
./nC.sh -make
./ant run
cd osb
./checkOsb.sh
cd ..
ant test -Dsimulators='NEURON'
and all tests pass. However, I can't actually run my code because of:
File "/home/jovyan/work/dev/neuralensemble/neuroConstruct/pythonnC/utils/jutils.py", line 12, in <module>
import ncutils
File "/home/jovyan/work/dev/neuralensemble/neuroConstruct/pythonNeuroML/nCUtils/ncutils.py", line 51, in <module>
from ucl.physiol.neuroconstruct.neuroml import NeuroMLFileManager
NoClassDefFoundError: java.lang.NoClassDefFoundError: org/lemsml/jlems/core/sim/LEMSException
or from the jython interpreter (./nCjython.sh, which sources the nCenv file):
from ucl.physiol.neuroconstruct.neuroml import NeuroMLFileManager
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
java.lang.NoClassDefFoundError: org/lemsml/jlems/core/sim/LEMSException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at org.python.core.Py.loadAndInitClass(Py.java:933)
at org.python.core.Py.findClassInternal(Py.java:868)
at org.python.core.Py.findClassEx(Py.java:919)
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:879)
at org.python.core.imp.importFromAs(imp.java:1044)
at org.python.core.imp.importFrom(imp.java:1016)
at org.python.pycode._pyx1.f$0(<stdin>:1)
at org.python.pycode._pyx1.call_function(<stdin>)
at org.python.core.PyTableCode.call(PyTableCode.java:166)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1312)
at org.python.core.Py.exec(Py.java:1356)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:231)
at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:89)
at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:70)
at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:46)
at org.python.util.InteractiveConsole.push(InteractiveConsole.java:112)
at org.python.util.InteractiveConsole.interact(InteractiveConsole.java:93)
at org.python.util.jython.run(jython.java:396)
at org.python.util.jython.main(jython.java:145)
Caused by: java.lang.ClassNotFoundException: org.lemsml.jlems.core.sim.LEMSException
at java.net.URLClassLoader$1.run(URLClassLoader.java:359)
at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 26 more
java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/lemsml/jlems/core/sim/LEMSException
If I try importing the lemsml stuff, I get:
>>> import org
>>> import org.lemsml
>>> import org.lemsml.jlems
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named jlems
I something not compiling or have the jlems classes moved somewhere else?
@rgerkin I managed to run
import org.lemsml.jlems
fine with a fresh docker ubuntu setup with nC installed as you outline if I run
./nC.sh -python
I've not ever used your nCjython.sh, which seems to require jython installed natively, and it fails for me as NC_HOME is not set (source $NC_HOME/nCenv.sh doesn't work then)... I think more testing of nCjython.sh is fresh environments is required.