NEURON as a Python module under Vista 32 with Cygwin

Post Reply
willy
Posts: 7
Joined: Sat Feb 28, 2009 5:22 pm

NEURON as a Python module under Vista 32 with Cygwin

Post by willy »

Hello everyone,

I' trying to install NEURON 7.0 under my Vista 32 bit OS to use it as a Python module in the Eclipse IDE (with PyDev). I exactly follwed the instructions on http://www.davison.webfactional.com/not ... on-python/ , but when I finally try to get the python shared libs with python setup.py install I get an error which I don't understand. I also used some modifications, but I'm pretty much in the dark here. I would be thankful for any hint.

Thanks,

Willy

Code: Select all

$ python setup.py install
running install
running build
running build_py
running build_ext
building 'neuron.hoc' extension
g++ -shared -Wl,--enable-auto-image-base build/temp.cygwin-1.5.25-i686-2.5/inith
oc.o -L/home/willy/neuron/nrn/i686/lib -L/home/willy/neuron/iv/i686/lib -L/usr/l
ib/python2.5/config -lnrnpython -lnrnoc -loc -lnrniv -livoc -lmemacs -lmeschach
-lneuron_gnu -lnrnmpi -lscopmath -lsparse13 -lsundials -lIVhines -lreadline -lpy
thon2.5 -o build/lib.cygwin-1.5.25-i686-2.5/neuron/hoc.dll -Wl,-R/home/willy/neu
ron/nrn/i686/lib -Wl,-R/home/willy/neuron/iv/i686/lib
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: warning: au
to-importing has been activated without --enable-auto-import specified on the co
mmand line.
This should work unless it involves constant data structures referencing symbols
 from auto-imported DLLs./home/willy/neuron/nrn/i686/lib/libivoc.a(ivocman1.o):
In function `ivocmain':
/home/willy/neuron/nrn/src/ivoc/ivocmain.cpp:246: undefined reference to `_nrnis
aac_new'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocrand.o): In function `_ZN7Isaac64C
2Ej':
/home/willy/neuron/nrn/src/ivoc/ivocrand.cpp:122: undefined reference to `_nrnis
aac_new'
/home/willy/neuron/nrn/src/ivoc/ivocrand.cpp:105: undefined reference to `_nrnis
aac_init'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocrand.o): In function `_ZN7Isaac64C
1Ej':
/home/willy/neuron/nrn/src/ivoc/ivocrand.cpp:122: undefined reference to `_nrnis
aac_new'
/home/willy/neuron/nrn/src/ivoc/ivocrand.cpp:105: undefined reference to `_nrnis
aac_init'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocrand.o): In function `_ZN7Isaac64D
2Ev':
/home/willy/neuron/nrn/src/ivoc/ivocrand.cpp:126: undefined reference to `_nrnis
aac_delete'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocrand.o): In function `_ZN7Isaac64D
1Ev':
/home/willy/neuron/nrn/src/ivoc/ivocrand.cpp:126: undefined reference to `_nrnis
aac_delete'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocrand.o): In function `_ZN7Isaac64D
0Ev':
/home/willy/neuron/nrn/src/ivoc/ivocrand.cpp:126: undefined reference to `_nrnis
aac_delete'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocrand.o): In function `_ZNK10ivReso
urce9ReferenceEv':
/home/willy/neuron/nrn/src/ivoc/../../src/ivos/InterViews/resource.h:54: undefin
ed reference to `_nrnisaac_uint32_pick'
/home/willy/neuron/nrn/src/ivoc/../../src/ivos/InterViews/resource.h:54: undefin
ed reference to `_nrnisaac_init'
/home/willy/neuron/nrn/src/ivoc/../../src/ivos/InterViews/resource.h:54: undefin
ed reference to `_nrnisaac_dbl_pick'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocwin.o): In function `_Z13mswin_set
clipP8ivCanvasiiii':
/home/willy/neuron/nrn/src/ivoc/ivocwin.cpp:61: undefined reference to `_CreateR
ectRgn@16'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocwin.o): In function `_Z13mswin_set
clipP8ivCanvasiiii':
/home/willy/neuron/iv/include/IV-Win/canvas.h:323: undefined reference to `_Sele
ctClipRgn@8'
/home/willy/neuron/nrn/i686/lib/libivoc.a(ivocwin.o): In function `_Z19mswin_del
ete_objectPv':
/home/willy/neuron/nrn/src/ivoc/ivocwin.cpp:67: undefined reference to `_DeleteO
bject@4'
/home/willy/neuron/nrn/i686/lib/libmemacs.a(tcap.o): In function `tcapopen':
/home/willy/neuron/nrn/src/memacs/tcap.c:88: undefined reference to `_tgetent'
/home/willy/neuron/nrn/src/memacs/tcap.c:96: undefined reference to `_tgetstr'
/home/willy/neuron/nrn/src/memacs/tcap.c:100: undefined reference to `_tgetstr'
/home/willy/neuron/nrn/src/memacs/tcap.c:101: undefined reference to `_tgetstr'
/home/willy/neuron/nrn/src/memacs/tcap.c:102: undefined reference to `_tgetstr'
/home/willy/neuron/nrn/src/memacs/tcap.c:103: undefined reference to `_tgetstr'
/home/willy/neuron/nrn/i686/lib/libmemacs.a(tcap.o):/home/willy/neuron/nrn/src/m
emacs/tcap.c:104: more undefined references to `_tgetstr' follow
/home/willy/neuron/nrn/i686/lib/libmemacs.a(tcap.o): In function `tcapopen':
/home/willy/neuron/nrn/src/memacs/tcap.c:106: undefined reference to `_tgetnum'
/home/willy/neuron/nrn/src/memacs/tcap.c:108: undefined reference to `_tgetnum'
/home/willy/neuron/nrn/i686/lib/libmemacs.a(tcap.o): In function `putpad':
/home/willy/neuron/nrn/src/memacs/tcap.c:168: undefined reference to `_tputs'
/home/willy/neuron/nrn/i686/lib/libmemacs.a(tcap.o): In function `tcapmove':
/home/willy/neuron/nrn/src/memacs/tcap.c:133: undefined reference to `_tgoto'
/home/willy/neuron/nrn/i686/lib/libmemacs.a(tcap.o): In function `putnpad':
/home/willy/neuron/nrn/src/memacs/tcap.c:174: undefined reference to `_tputs'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `ding':
/home/willy/neuron/nrn/src/readline/readline.c:2579: undefined reference to `_tp
uts'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `move_ver
t':
/home/willy/neuron/nrn/src/readline/readline.c:(.text+0x7a3): undefined referenc
e to `_tputs'
/home/willy/neuron/nrn/src/readline/readline.c:(.text+0x7f1): undefined referenc
e to `_tputs'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `backspac
e':
/home/willy/neuron/nrn/src/readline/readline.c:(.text+0x86b): undefined referenc
e to `_tputs'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o):/home/willy/neuron/nrn
/src/readline/readline.c:1837: more undefined references to `_tputs' follow
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `update_l
ine':
/home/willy/neuron/nrn/src/readline/readline.c:2168: undefined reference to `_tg
oto'
/home/willy/neuron/nrn/src/readline/readline.c:2169: undefined reference to `_tp
uts'
/home/willy/neuron/nrn/src/readline/readline.c:2147: undefined reference to `_tg
oto'
/home/willy/neuron/nrn/src/readline/readline.c:2148: undefined reference to `_tp
uts'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `crlf':
/home/willy/neuron/nrn/src/readline/readline.c:2215: undefined reference to `_tp
uts'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `init_ter
minal_io':
/home/willy/neuron/nrn/src/readline/readline.c:2052: undefined reference to `_tg
etent'
/home/willy/neuron/nrn/src/readline/readline.c:2058: undefined reference to `_tg
etstr'
/home/willy/neuron/nrn/src/readline/readline.c:2060: undefined reference to `_tg
etstr'
/home/willy/neuron/nrn/src/readline/readline.c:2062: undefined reference to `_tg
etstr'
/home/willy/neuron/nrn/src/readline/readline.c:2063: undefined reference to `_tg
etstr'
/home/willy/neuron/nrn/src/readline/readline.c:2064: undefined reference to `_tg
etstr'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o):/home/willy/neuron/nrn
/src/readline/readline.c:2101: more undefined references to `_tgetstr' follow
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `init_ter
minal_io':
/home/willy/neuron/nrn/src/readline/readline.c:2089: undefined reference to `_tg
etnum'
/home/willy/neuron/nrn/src/readline/readline.c:2090: undefined reference to `_tg
etnum'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `rl_refre
sh_line':
/home/willy/neuron/nrn/src/readline/readline.c:2885: undefined reference to `_tp
uts'
/home/willy/neuron/nrn/i686/lib/libreadline.a(readline.o): In function `rl_clear
_screen':
/home/willy/neuron/nrn/src/readline/readline.c:2905: undefined reference to `_tp
uts'
Info: resolving _bad_install_ok by linking to __imp__bad_install_ok (auto-import
)
Info: resolving vtable for osStringby linking to __imp___ZTV8osString (auto-impo
rt)
Info: resolving vtable for osCopyStringby linking to __imp___ZTV12osCopyString (
auto-import)
Info: resolving _IVDialog_setAcceptInput by linking to __imp__IVDialog_setAccept
Input (auto-import)
collect2: ld returned 1 exit status
error: command 'g++' failed with exit status 1
hines
Site Admin
Posts: 1600
Joined: Wed May 18, 2005 3:32 pm

Re: NEURON as a Python module under Vista 32 with Cygwin

Post by hines »

The Davison instructions are only valid for linux.
To build NEURON as a python module under MSWIN has two forks depending
on whether the python program itself is a native mswin program or a cygwin
program.
If python is run under cygwin, then build as normal and then
make mswin
This will fail when it tries to create the nrnsetup.exe but all the essential
files will be in c:/marshalnrn/nrn/bin
where you can copy hocmodule.dll and cygIVhines-3.dll and nrniv.dll to the proper
python related location where
from neuron import h
will succeed regardless of the launch directory. Some versions of python require that
hocmodule.dll be renamed to a standard name such as hoc.dll .
You may also need a NEURONHOME environment variable.

If the python is a native mswin program then NEURON needs to be built as a MinGW program
and that is done with the configure option
--disable-cygwin
You may also need to specify the proper --with-nrnpython=...
and if that is not enough, also the proper PYLIBDIR PYLIB PYLIBLINK and
PYINCDIR
Post Reply