stimfit icon indicating copy to clipboard operation
stimfit copied to clipboard

Stimfit will not work with IPython versions 0.11 or above

Open JoseGuzman opened this issue 9 years ago • 4 comments

Because IPython dropped wx support on versions 0.11 and above, Stimfit will not build with IPython's backed. Check with your IPython version with ipython --version

According to Fernando Perez, there are a few options:

  1. To embed a proper IPython kernel into your WX app, as shown here:

https://github.com/ipython/ipython/blob/master/docs/examples/lib/ipkernel_wxapp.py https://github.com/ipython/ipython/blob/master/docs/examples/lib/internal_ipkernel.py

Those two files show how you can activate an IPython kernel in your WX application. At that point, the kernel is ready to listen to commands from a Qt console, and you can attach one of the existing Qt consoles, or launch one yourself (also shown there).

The downside of this is that it requires that users have Qt as well. That may not be an issue for some projects, but a showstopper for others.

  1. Help us by updating the IPython WX code to the new 0.11 interfaces. We'd love to have a working WX client alongside the Qt one, so if anyone with WX expertise is willing to help out, that would be great.
  2. If psychopy is distributed mostly as a 'bundled app' instead of relying on system versions of packages, then there's always the brute force solution of just bundling ipython 0.10.2 alongside. Not pretty, but it gets the job done...

JoseGuzman avatar Jul 29 '15 08:07 JoseGuzman

Just updating this, as it got posted in a response to our user survey:

  1. remains possible, though it's obviously not ideal for a Wx application.

1a. You could embed an IPython kernel into your application, and then have a Wx window with a straightforward terminal emulator widget which runs IPython 'console'. That's a terminal mode which talks to a remote kernel, whereas our normal kernel runs in a single process. I appreciate that's a bit ugly, but it should work.

  1. would be a lot of work to do well. We have quite a lot of code for the Qt console, and much of it would have to be reimplemented to support a Wx frontend. I think the Qt console is already less used than the notebook or the terminal, so I don't think we have much appetite for building another console on a different toolkit.
  2. looks less and less ideal. IPython 0.10 is really old now, and we don't want to encourage anyone to use it.

JoseGuzman avatar Jul 29 '15 08:07 JoseGuzman

Option 4: Port Stimfit to Qt :-) Only half-kidding here, I'm a bit pessimistic about wxPython's future:

  • wxPython still has no official Python 3 support, and "Project Phoenix" is far away from a release
  • wxPython 2.9.5 hasn't been released yet, breaking stimfit for MacPorts
  • wxWidgets 3.0 is 4 years (!) behind the original roadmap: http://web.archive.org/web/20090124221715/http://trac.wxwidgets.org/wiki/Roadmap
  • Even wxPython's lead developer seems to have an affinity for Qt/PySide: http://wxpython.org/blog/2013/03/27/new-horizons/

JoseGuzman avatar Jul 29 '15 08:07 JoseGuzman

I agree that Wx doesn't seem to be going anywhere fast - although that could be a good thing for a GUI framework. But I get the impression that there's enough stuff running on it that it will be kept working for the foreseeable future.

JoseGuzman avatar Jul 29 '15 08:07 JoseGuzman

This link will provide us some information soon ( I hope).

JoseGuzman avatar Sep 14 '15 11:09 JoseGuzman