pydstool
pydstool copied to clipboard
PyDSTool doesn't fully run on Windows 10 with 64 bits
Hello
I installed PyDSTool on Windows 10 with 64 bits. I have Anaconda3/64-bit and Python 3.7.
PyDSTool installation was done using pip: pip install git+https://github.com/robclewley/pydstool.git
Before installing PyDSTool, I installed SWIG and C and Fortran compilers using conda:
conda install -c anaconda swig conda install -c conda-forge c-compiler conda install -c conda-forge clang conda install -c conda-forge python-clang conda install -c msys2 m2w64-gcc-objc conda install -c conda-forge fortran-compiler
I ran the following subset of “all” tests to do initial check of PyDSTool: Basic PyDSTool modules Map generators ODE integration with vode, no external compiler needed Parameter estimation module Parameter estimation, requires external C compiler Symbolic differentiation module Continuation; no external compilers needed
The following tests failed:
Basic PyDSTool modules:
- traj_gt0_test.py
ODE integration with vode, no external compiler needed
- HH_model_testbounds.py
Parameter estimation, requires external C compiler
- pest_test3_Cintegrator.py
- pest_test4_Cintegrator.py
Continuation; no external compilers needed
- PyCont_ABCReaction.py
- PyCont_Hopfield.py
- PyCont_Logistic.py
- PyCont_SaddleNode.py
Note that tests PyCont_ABCReaction.py and PyCont_Hopfield.py sometimes fail and sometimes don't. They didn't fail after computer reboot.
Attached file contains more details on error messages for each test.
Thanks. I've fixed most of the easy issues with the examples in my rob-fixes1
branch and I'm now onto the PyCont ones. Testing on Windows will be next.
I'll follow up when I get on my Windows machine, but I'm not sure anything will have changed since the same issue came up several years ago. Basically, windows binaries for python and other libraries are compiled using MSVC, which is not compatible to link with distutils
building DLLs using gcc
.
I'd heard that changing the default compiler with
[Build]
compiler = mingw-w64
in your python installation's Lib\distutils\distutils.cfg
file may help, but I don't see any evidence from the source file that distutils supports 64-bit mingw. And there seem to be outstanding complaints related to this. The last link notes: "MSYS2 patches setuptools to work with GCC and the MSYS2 Python, so you can't use setuptools as is from pip. See https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-python-setuptools for the current set of patches." I'm not personally familiar with what to do with those, exactly, so you might have to explore further.
If not, you'll probably have to either build your whole stack from source using gcc
, use an unofficial binary from http://www.lfd.uci.edu/~gohlke/pythonlibs/, or have a MSVC-compatible C compiler on hand (typically not a free product). Or, run PyDSTool on linux or mac.
Thanks for looking into reported issues.
I've already switched to Linux and installed PyDSTool. This went relatively smoothly. Then I ran several examples including those which call Dopri/Radau and AUTO. There were few errors thrown when running examples which called PyCont. I want to write a separate issue with details of tests which failed. I was also able to use PyDSTool (in Linux) for my project for which I needed to calculate a Phase Response Curve.
I'll be waiting for results of your running the tool in Windows environment. Until then I'll probably continue further exploring PyDSTool in Linux environment.
Thanks again.