Page 1 of 1

Neuron as a Python Module Redux

Posted: Fri Mar 04, 2016 11:37 pm
by Bill Connelly
So it's getting around to 4 years since the last thread on this was started, so I feel another one is in order. I've read through the other threads but the advice does not really make sense to me, or does it work when it does.

Specifics:
I'm running Windows 8.1 on a 64 bit machine,
I'm running 64 Bit Python 2.7.9 (just normal python. Not enthought or anything else)
I've freshly installed Neuron 7.4 64bit.

When I run the nrniv_python shortcut, everything appears to work. However, if I open Python in any other way I run into problems

Code: Select all

Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> from neuron import h

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    from neuron import h
  File "c:\nrn\lib\python\neuron\__init__.py", line 106, in <module>
    import neuron.hoc
ImportError: DLL load failed: The specified module could not be found.
Is there any way to get around this?

p.s. If the advice to fix this involves typing to the command line, can you please be explicit about which command line? Python, Windows, Neuron...

Thanks.

Re: Neuron as a Python Module Redux

Posted: Sat Mar 05, 2016 10:59 am
by ramcdougal
Open a DOS prompt (cmd) and try running:

Code: Select all

set PATH=c:\nrn\bin;%PATH%
Then (in the same window), type "python" and "import neuron". Does that work?

If so, you can make the change permanent by adding c:\nrn\bin to the PATH environment variable; instructions are available here and elsewhere.

A similar problem can occur on the mac. On that platform, the nrnpyenv.sh script can be used to guess PATH, PYTHONPATH, and PYTHONHOME envrionment variables.

Re: Neuron as a Python Module Redux

Posted: Sat Mar 05, 2016 5:25 pm
by Bill Connelly
You're a legend. I thought I had that bit all sorted out because the NEURONHOME and PYTHONPATH were all set already. But yes, still needed to add something to path. Excellent, thank you very much, I am in your debt.

Re: Neuron as a Python Module Redux

Posted: Wed Mar 09, 2016 5:36 am
by SurG
We are running Neuron 7.4 and Python 2.7.11 in Windows 7 ( 64 bit). We were also facing the exact same problem and we implemented the solutions suggested. However, we are still unable to import Neuron on the Python terminal. Please advice as to what we can do next.

Deactivating environment "C:\Users\Panther\Anaconda2"...
Activating environment "C:\Users\Panther\Anaconda2"...

[Anaconda2] C:\Users\Panther>python
Python 2.7.11 |Anaconda 2.5.0 (32-bit)| (default, Jan 29 2016, 15:36:56) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

>>> from neuron import h
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\nrn\lib\python\neuron\__init__.py", line 106, in <module>
import neuron.hoc
ImportError: No module named hoc
>>>

Re: Neuron as a Python Module Redux

Posted: Fri Mar 11, 2016 6:00 pm
by ramcdougal
Try permanently setting the PATH environment variable for the system instead of through the command line. (See below.) In addition, make sure you are using the 32 bit NEURON to match your 32 bit Python.

For completeness, I just tried the following on a machine starting from no OS, and it worked:
  • Installed Windows 7 SP 1
  • Installed 32 bit* Anaconda 2.5.0 for all users otherwise accepting the defaults
  • Installed 32 bit NEURON 7.4 as downloaded today, March 11th, selecting the bold option to "Set DOS environment" ** but otherwise accepting the defaults
  • "start button" - right-click on "computer" - properties - "Advanced system settings" - "Environment Variables" - "New" ***
  • For "Variable name": PATH
  • For "Variable value": c:\nrn\bin
  • Then click "OK"
  • Then click "OK" on the dialog below that
  • Then click "OK" on the third dialog below that
  • Launch the Anaconda Prompt****, *****
  • Type: python
  • Type: import neuron
Success:

Code: Select all

Deactivating environment "C:\Anaconda2"...
Activating environment "C:\Anaconda2"...

[Anaconda 2] C:\Users\ramcdougal>python
Python 2.7.11 |Anaconda 2.5.0 (32-bit)| (default, Jan 29 2016, 15:36:56) [MSC v.
1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import neuron
NEURON -- Release 7.4 (1370:16a7055d4a86) 2015-11-09
Duke, Yale, and the BlueBrain Project -- Copyright 1984-2015
See http://www.neuron.yale.edu/neuron/credits

>>>

* I note that you're using 32 bit Python on 64-bit Windows 7, so these instructions follow that and use 32 bit NEURON as well. I assume 64 bit NEURON will not play nice with 32 bit Python, but I did not test that.

** The "Set DOS environment" option sets the NEURONHOME environment variable to "c:\nrn" and adds "c:\nrn\lib\python" to the PYTHONPATH

*** If you already have a PATH environment variable, edit it instead and add c:\nrn\bin

**** In particular, the changes we just made will only work with NEW console windows; do not reuse an existing one, just launch a new one

***** at this point, I also tested: cmd, ipython, and Jupyter QtConsole (for the last two, Python is already launched so skip that step). Each worked

Re: Neuron as a Python Module Redux

Posted: Mon Mar 14, 2016 10:42 pm
by SurG
Thank you very much sir. This worked!

Re: Neuron as a Python Module Redux

Posted: Tue Sep 27, 2016 5:00 am
by basjanzandt
Thanks a lot. This solution worked for us as well on Windows 10, using 64 bit anaconda and 64 bit NEURON 7.4.

Re: Neuron as a Python Module Redux

Posted: Mon Feb 06, 2017 8:06 pm
by aaronmil
Hi Rob,

I'm having an awful time with a strange issue on my colleague's Windows 10 machine. We have 64-bit Anaconda2, and 64-bit NEURON 7.4 from the standard windows installer. We can run ipython, import neuron, and run simulations just fine - but only if we use the "ball and stick" specification of section morphologies. If we try to execute code that uses the n3d() method of a h.Section object, it returns that 'n3d is not an attribute of Section'. We have uninstalled and reinstalled Anaconda and NEURON a few ways now, and just cannot get it to work. Any ideas? Thank you.

Aaron
ramcdougal wrote:Try permanently setting the PATH environment variable for the system instead of through the command line. (See below.) In addition, make sure you are using the 32 bit NEURON to match your 32 bit Python.

For completeness, I just tried the following on a machine starting from no OS, and it worked:
  • Installed Windows 7 SP 1
  • Installed 32 bit* Anaconda 2.5.0 for all users otherwise accepting the defaults
  • Installed 32 bit NEURON 7.4 as downloaded today, March 11th, selecting the bold option to "Set DOS environment" ** but otherwise accepting the defaults
  • "start button" - right-click on "computer" - properties - "Advanced system settings" - "Environment Variables" - "New" ***
  • For "Variable name": PATH
  • For "Variable value": c:\nrn\bin
  • Then click "OK"
  • Then click "OK" on the dialog below that
  • Then click "OK" on the third dialog below that
  • Launch the Anaconda Prompt****, *****
  • Type: python
  • Type: import neuron

Re: Neuron as a Python Module Redux

Posted: Mon Feb 06, 2017 10:53 pm
by ted
aaronmil, unless you're addressing a specific item from ramcdougal's post, there's really no need to quote any of his message, let alone the entire post. If everybody did that, the Forum would be much larger and much harder to wade through than it already is.