Neuron as a Python Module Redux

Neuron as a Python Module Redux

Postby Bill Connelly » Sat Mar 05, 2016 12:37 am

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.
Bill Connelly
 
Posts: 85
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

Re: Neuron as a Python Module Redux

Postby ramcdougal » Sat Mar 05, 2016 11:59 am

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.
ramcdougal
 
Posts: 92
Joined: Fri Nov 28, 2008 4:38 pm
Location: Yale School of Medicine

Re: Neuron as a Python Module Redux

Postby Bill Connelly » Sat Mar 05, 2016 6:25 pm

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.
Bill Connelly
 
Posts: 85
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

Re: Neuron as a Python Module Redux

Postby SurG » Wed Mar 09, 2016 6:36 am

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
>>>
SurG
 
Posts: 3
Joined: Fri Jun 19, 2015 4:39 pm

Re: Neuron as a Python Module Redux

Postby ramcdougal » Fri Mar 11, 2016 7:00 pm

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
ramcdougal
 
Posts: 92
Joined: Fri Nov 28, 2008 4:38 pm
Location: Yale School of Medicine

Re: Neuron as a Python Module Redux

Postby SurG » Mon Mar 14, 2016 10:42 pm

Thank you very much sir. This worked!
SurG
 
Posts: 3
Joined: Fri Jun 19, 2015 4:39 pm

Re: Neuron as a Python Module Redux

Postby basjanzandt » Tue Sep 27, 2016 5:00 am

Thanks a lot. This solution worked for us as well on Windows 10, using 64 bit anaconda and 64 bit NEURON 7.4.
basjanzandt
 

Re: Neuron as a Python Module Redux

Postby aaronmil » Mon Feb 06, 2017 9:06 pm

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

Last edited by aaronmil on Tue Feb 07, 2017 2:54 am, edited 1 time in total.
aaronmil
 
Posts: 25
Joined: Fri Apr 25, 2014 10:54 am

Re: Neuron as a Python Module Redux

Postby ted » Mon Feb 06, 2017 11:53 pm

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.
ted
Site Admin
 
Posts: 5015
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine


Return to MSWin

Who is online

Users browsing this forum: No registered users and 1 guest

cron