Hey all!
First time poster here on the mailing list, so don't hesitate to correct me or ask for more information. I'm building a container to package a simulation, but I've ran into an unusual issue that I can't seem to fix: MUSIC proxy nodes are found and created correctly
from NEST SLI, but raise `nest.lib.hl_api_exceptions.NESTErrors.UnknownModelName` when created from pyNEST.
Here's some more info about my setup.
- Both MUSIC and NEST are built from source (`git clone --depth 1 --branch v3.7 https://github.com/nest/nest-simulator/`)
- I've tried both `-Dwith-music=ON` and `-Dwith-music=$MUSIC_INSTALL_DIR` to no avail. I'll keep the latter.
- other flags are `-Dwith-mpi=ON -Dwith-openmp=ON -Dwith-ltdl=ON`
- here are the relevant sections of the cmake output (full output at the end)
```
#18 11.02 Python bindings : Yes (Python 3.10.17: /sim/venv/bin/python3)
#18 11.02 Includes : /usr/local/include/python3.10
#18 11.02 Libraries :
#18 11.02 Cython : Yes (Cython 3.0.12: /sim/venv/bin/cython)
#18 11.02 MPI4Py : Yes (/sim/venv/lib/python3.10/site-packages/mpi4py/include)
...
#18 11.02 Use MUSIC : Yes (MUSIC 1.2.1)
#18 11.02 Includes : /sim/install/music/include
#18 11.02 Libraries : /sim/install/music/lib/libmusic.so
```
- the presence of MUSIC version in `cmake` output makes me hopeful that it's found correctly
- image based on Debian 12 (`FROM python:3.10-slim-bookworm AS runner`)
- first thing i do is create a venv and set it as first in path (`ENV PATH="$VIRTUAL_ENV/bin:$PATH"`)
- when i attempt to run the [MUSIC with pyNEST example](https://nest-simulator.readthedocs.io/en/stable/tutorials/music_tutorial/music_tutorial_2.html) i get `nest.lib.hl_api_exceptions.NESTErrors.UnknownModelName: UnknownModelName in SLI function Create_l_i:
/music_event_in_proxy is not a known model name.`, while running the [MUSIC in SLI example](https://nest-simulator.readthedocs.io/en/stable/tutorials/music_tutorial/music_tutorial_sli.html) works correctly
- i read the [official Dockerfile](https://github.com/nest/nest-docker/blob/master/src/3.8/Dockerfile) but I couldn't spot any steps I might be missing, the [cmake options](https://nest-simulator.readthedocs.io/en/stable/installation/cmake_options.html#cmake-options),
the [install_music.sh script](https://github.com/nest/nest-simulator/blob/master/build_support/install_music.sh), the [docker entrypoint](https://github.com/nest/nest-docker/blob/master/src/3.8/entrypoint.sh) and the $NEST_INSTALL_DIR/bin/nest_vars.sh scripts,
but I didn't find anything other than what I already had.
- I'm guessing this is user error on my part, hence the mailing list instead of github issues.
If necessary I can share a smaller version of the dockerfile... not sure what else to try. On one hand, I'd think of a compilation issue, but the cmake output and the fact that SLI works correctly makes me doubt so. On the other, I might be missing an env var,
but from what I could gather in pyNEST `nest.node_models` is asked to the kernel, which correctly creates the node when called from the SLI... Is there any esoteric configuration I might've missed?
I'll take any and all suggestions!
Thanks a lot,
Paolo
full cmake output:
```
#18 11.02 --------------------------------------------------------------------------------
#18 11.02 NEST Configuration Summary
#18 11.02 --------------------------------------------------------------------------------
#18 11.02
#18 11.02 Target System : Linux
#18 11.02 Cross Compiling : FALSE
#18 11.02 C compiler : GNU 12.2.0 (/usr/bin/cc)
#18 11.02 C compiler flags : -Wall -fopenmp -O2 -fdiagnostics-color=auto
#18 11.02 C++ compiler : GNU 12.2.0 (/usr/bin/c++)
#18 11.02 C++ compiler flags : -std=c++17 -Wall -fopenmp -O2 -fdiagnostics-color=auto
#18 11.02 Build dynamic : ON
#18 11.02
#18 11.02 Built-in modelset : full
#18 11.02
#18 11.02 Python bindings : Yes (Python 3.10.17: /sim/venv/bin/python3)
#18 11.02 Includes : /usr/local/include/python3.10
#18 11.02 Libraries :
#18 11.02 Cython : Yes (Cython 3.0.12: /sim/venv/bin/cython)
#18 11.02 MPI4Py : Yes (/sim/venv/lib/python3.10/site-packages/mpi4py/include)
#18 11.02
#18 11.02 Documentation : No
#18 11.02
#18 11.02 Use threading : Yes (OpenMP: -fopenmp)
#18 11.02 Libraries : /usr/lib/gcc/x86_64-linux-gnu/12/libgomp.so;/usr/lib/x86_64-linux-gnu/libpthread.a
#18 11.02
#18 11.02 Use GSL : Yes (GSL 2.7.1)
#18 11.02 Includes : /usr/include
#18 11.02 Libraries : /usr/lib/x86_64-linux-gnu/libgsl.so;/usr/lib/x86_64-linux-gnu/libgslcblas.so
#18 11.02
#18 11.02 Use Readline : Yes (GNU Readline 8.2)
#18 11.02 Includes : /usr/include
#18 11.02 Libraries : /usr/lib/x86_64-linux-gnu/libreadline.so;/usr/lib/x86_64-linux-gnu/libncurses.so
#18 11.02
#18 11.02 Use libltdl : Yes (LTDL 2.4.7)
#18 11.02 Includes : /usr/include
#18 11.02 Libraries : /usr/lib/x86_64-linux-gnu/libltdl.so
#18 11.02
#18 11.02 Use MPI : Yes (MPI: /usr/bin/mpicxx)
#18 11.02 Includes : /usr/lib/x86_64-linux-gnu/openmpi/include;/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi
#18 11.02 Libraries : /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so;/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so
#18 11.02 Launcher : /usr/bin/mpiexec -n <np> <prog> <args>
#18 11.02
#18 11.02 Detailed timers : No
#18 11.02
#18 11.02 Use MUSIC : Yes (MUSIC 1.2.1)
#18 11.02 Includes : /sim/install/music/include
#18 11.02 Libraries : /sim/install/music/lib/libmusic.so
#18 11.02
#18 11.02 Use libneurosim : No
#18 11.02
#18 11.02 Use Boost : Yes (Boost 1.74.0)
#18 11.02 Includes : /usr/include
#18 11.02 Libraries :
#18 11.02
#18 11.02 Use SIONlib : No
#18 11.02
#18 11.02 Use HDF5 : No
#18 11.02
#18 11.02 For details on setting specific flags for your MPI launcher command, see the
#18 11.02 CMake documentation at https://cmake.org/cmake/help/latest/module/FindMPI.html
#18 11.02
#18 11.02 --------------------------------------------------------------------------------
#18 11.02
#18 11.02 The NEST executable will be installed to:
#18 11.02 /sim/install/nest/bin/
#18 11.02
#18 11.02 NEST dynamic libraries and user modules will be installed to:
#18 11.02 /sim/install/nest/lib/nest/
#18 11.02
#18 11.02 PyNEST will be installed to:
#18 11.02 /sim/install/nest/lib/python3.10/site-packages
#18 11.02
#18 11.02 To set necessary environment variables, add the following line
#18 11.02 to your ~/.bashrc :
#18 11.02 source /sim/install/nest/bin/nest_vars.sh
#18 11.02
#18 11.02 --------------------------------------------------------------------------------
#18 11.02
#18 11.02 You can now build and install NEST with
#18 11.02 make
#18 11.02 make install
#18 11.02 make installcheck
#18 11.02
#18 11.02 If you experience problems with the installation or the use of NEST,
#18 11.02 please see https://www.nest-simulator.org/frequently_asked_questions
#18 11.02 or go to https://www.nest-simulator.org/community to find out how to
#18 11.02 join the user mailing list.
#18 11.02
```