neurodroid / stimfit

A program for viewing and analyzing electrophysiological data
GNU General Public License v2.0
52 stars 25 forks source link

Stimfit will not work with IPython versions 0.11 or above #23

Open JoseGuzman opened 9 years ago

JoseGuzman commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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

JoseGuzman commented 9 years ago

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 commented 9 years ago

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