Installation Help: Fail to "import neuron" in Python
Posted: Thu Mar 19, 2020 12:42 pm
I'm running MacOS High Sierra 10.13.6. I've setup an Anaconda environment where I'm trying to get Neuron running with Python 3.7. I've almost certainly messed up something up with the PATH and where Python is looking for Neuron. I've seen a few similar errors on here, but haven't found a solution that works.
I've got everything running well enough such that when I go to ~/neuron/nrn/src/nrniv , running "./nrniv -python" works fine. I can also run "import hoc" and "import nrn" with no issues.
These are the contents of my ~/.profile file:
echo now executing ~/.profile
export PATH=$HOME/local/bin:$PATH
export PYTHONHOME=//anaconda/envs/neuronEnv
export PYTHONPATH=//anaconda/envs/neuronEnv/lib/python3.7/site-packages
export NRN_PYLIB=//anaconda/envs/neuronEnv/lib/libpython3.7m.dylib
export LB_LIBRARY_PATH=//anaconda/envs/neuronEnv/lib
source ~/neuron/nrnenv
The error occurs when I open Python independently, and run "import neuron" (here's the verbose output):
>>> import neuron
# //anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__pycache__/__init__.cpython-37.pyc matches //anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__init__.py
# code object from '//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__pycache__/__init__.cpython-37.pyc'
Traceback (most recent call last):
File "//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__init__.py", line 106, in <module>
import hoc
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'hoc'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__init__.py", line 110, in <module>
import neuron.hoc
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
File "<frozen importlib._bootstrap>", line 583, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1043, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: dlopen(//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/hoc.cpython-37m-darwin.so, 2): Symbol not found: __ZN9ivSession8instanceEv
Referenced from: /nrn/x86_64/lib/libnrnpython3.0.dylib
Expected in: flat namespace
in /nrn/x86_64/lib/libnrnpython3.0.dylib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__init__.py", line 112, in <module>
exec("import neuron.hoc%d%d as hoc" % (sys.version_info[0], sys.version_info[1]))
File "<string>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'neuron.hoc37'
I've got everything running well enough such that when I go to ~/neuron/nrn/src/nrniv , running "./nrniv -python" works fine. I can also run "import hoc" and "import nrn" with no issues.
These are the contents of my ~/.profile file:
echo now executing ~/.profile
export PATH=$HOME/local/bin:$PATH
export PYTHONHOME=//anaconda/envs/neuronEnv
export PYTHONPATH=//anaconda/envs/neuronEnv/lib/python3.7/site-packages
export NRN_PYLIB=//anaconda/envs/neuronEnv/lib/libpython3.7m.dylib
export LB_LIBRARY_PATH=//anaconda/envs/neuronEnv/lib
source ~/neuron/nrnenv
The error occurs when I open Python independently, and run "import neuron" (here's the verbose output):
>>> import neuron
# //anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__pycache__/__init__.cpython-37.pyc matches //anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__init__.py
# code object from '//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__pycache__/__init__.cpython-37.pyc'
Traceback (most recent call last):
File "//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__init__.py", line 106, in <module>
import hoc
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'hoc'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__init__.py", line 110, in <module>
import neuron.hoc
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
File "<frozen importlib._bootstrap>", line 583, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1043, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: dlopen(//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/hoc.cpython-37m-darwin.so, 2): Symbol not found: __ZN9ivSession8instanceEv
Referenced from: /nrn/x86_64/lib/libnrnpython3.0.dylib
Expected in: flat namespace
in /nrn/x86_64/lib/libnrnpython3.0.dylib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "//anaconda/envs/neuronEnv/lib/python3.7/site-packages/neuron/__init__.py", line 112, in <module>
exec("import neuron.hoc%d%d as hoc" % (sys.version_info[0], sys.version_info[1]))
File "<string>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'neuron.hoc37'