NeuralEnsemble / neuroConstruct

neuroConstruct: biophysically detailed neuronal modelling in 3D
http://www.neuroconstruct.org
GNU General Public License v2.0
48 stars 23 forks source link

org.lemsl.jlems? #62

Open rgerkin opened 7 years ago

rgerkin commented 7 years ago

@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?

pgleeson commented 7 years ago

@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.