Thanks, Pierre, for the update. The ipython plugin starts nicely with both PySide and PyQt API, however, plotting has some strange behaviors:
I can open only exactly 1 ipython frontend. Whenever I try to open a second one, I get [IPythonApp] Could not find existing kernel connection file kernel-17160.json (or any other kernel-xxx.json, once it even showed kernel*-json) Further, when I try to open a window (e.g. using figure()) with PySide I get the following: TypeError: QWidget.setFocusPolicy(Qt.FocusPolicy): argument 1 has unexpected type 'PySide.QtCore.Qt.FocusPolicy' For PyQT, the window opens when I set matplotlib.interactive(False) but then the console is locked. The window doesn't open/update when interactive is True. So plotting is unusable. The ipython frontend uses window based plotting even though I have specified to use pylab inline in the Preferences which is ignored completely. I further have the strange bug that sometime when I start spyder the upper options in the Interpreters menu (start console, start ipython console, start ipython kernel) are grayed out, only the "start new frontend" entry is available. However, what works for me is opening an ipython session outside of spyder with ipython qtconsole --pylab=inline and then just open one frontend to the existing kernel with spyder. Running ipython kernel --pylab=inline does not work and produces the same errors as running a kernel inside of spyder (ignores pylab=inline option and tries to open windows) Hope this feedback helps! Cheers Philipp On 03/19/2012 10:28 PM, Pierre Raybaut wrote: > Hi all, > > FYI, IPython 0.12 is now working with Spyder's latest Mercurial > changesets (meaning that both v2.1.9 and v2.2.0 will support recent > IPython versions again). > > Note that IPython 0.11+ support is still experimental -- and it's only > working in the IPython plugin (*not* in the Console plugin). The > Console plugin supports only IPython 0.10 and I doubt that we will > ever be able to add support for IPython 0.11+ > (http://spyder-ide.blogspot.fr/2011/09/no-ipython-v011-support-in-spyders.html). > > Cheers, > Pierre > > Le 8 mars 2012 11:21, David Verelst <[email protected]> a écrit : >> Hi Philipp, >> >> Thanks for the extensive response. Seems that I have a lot more to learn on >> the IPython/Spyder department. You got a lot further than my futile attempts >> :-) >> >> Regards, >> David >> >> >> On 07/03/12 16:55, Philipp Lies wrote: >>> >>> Hi, >>> >>> thanks for your response, but the behavior of ipython is far from what >>> is (or I) expected. If I compare the ipython console inside spyder it >>> behaves different from what ipython does when I start it from shell. So >>> spyder (or how spyder calls ipython) is the difference and renders using >>> spyder infeasible for me (at least on linux, works nicely on win). >>> >>> The following code is an example: >>> # -*- coding: utf-8 -*- >>> # *** Spyder Python Console History Log *** >>> >>> ##---(Wed Mar 7 15:56:30 2012)--- >>> import matplotlib.pyplot as plt >>> import numpy as np >>> plt.plot(np.arange(10)) >>> plt.draw() >>> >>> in the spyder ipython console, nothing happens while in the spyder >>> python console a window opens with the plot. When I run >>> >>> plt.show() >>> >>> in ipython a window opens with the plot but the console is locked. When >>> I then close the window and run >>> >>> plt.interactive(True) >>> plt.plot(np.arange(10)) >>> plt.draw() >>> >>> Nothing happens. When I run >>> >>> plt.show() >>> >>> nothing happens. When I run >>> >>> plt.figure() >>> >>> nothing happens, not even a blank window opens. When I run >>> >>> plt.interactive(False) >>> >>> The old behavior with the lock is back. So spyder is calling ipython >>> with some weird command line parameters. Because when I look at sys.argv >>> (the argument list) it's >>> >>> In [1]: sys.argv >>> Out[1]: >>> >>> ['/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/startup.py', >>> '-pylab', >>> '-q4thread', >>> '-colors', >>> 'LightBG', >>> '-xmode', >>> 'Plain'] >>> >>> which must be wrong because that's not a valid ipython v0.12 argument >>> list. When I try to call ipython from shell with this list, I get >>> >>> WARNING: `-pylab` flag has been deprecated. >>> Use `--pylab` instead, or `--pylab=foo` to specify a backend.========= >>> [...] >>> [TerminalIPythonApp] Bad config encountered during initialization: >>> [TerminalIPythonApp] Unrecognized flag: '-q4thread' >>> >>> And the list of loaded modules is also strange: >>> In [1]: whos >>> Variable Type Data/Info >>> -------------------------------------------------- >>> InteractiveShellEmbed MetaHasTraits<class >>> 'IPython.frontend.<...>d.InteractiveShellEmbed'> >>> h5py module<module 'h5py' from >>> '/usr<...>kages/h5py/__init__.pyc'> >>> os module<module 'os' from >>> '/usr/lib/python2.7/os.pyc'> >>> osp module<module 'posixpath' from >>> <...>python2.7/posixpath.pyc'> >>> sys module<module 'sys' (built-in)> >>> >>> However, when I try to load matplotlib and set the backend, I get an >>> error because the backend is already set to Qt4Agg. >>> >>> In [3]: mlib.use('TkAgg') >>> UserWarning: This call to matplotlib.use() has no effect >>> because the the backend has already been chosen; >>> matplotlib.use() must be called *before* pylab, matplotlib.pyplot, >>> or matplotlib.backends is imported for the first time. >>> >>> So somewhere during the initialization of ipython matplotlib has been >>> loaded, (mis-)configured, and unloaded so that I cannot configure it. I >>> can change this by disabling matplotlib in the preferences, but >>> whichever backend I load manually won't work. >>> >>> It seems to me that spyder ignores the parameters set in the "External >>> Modules" tab of the console options in the preferences. Because even if >>> I enter an invalid statement in the "IPython interpreter command line >>> options" field nothing changes (and the default value does not at all >>> correspond to what sys.argv says after loading). >>> >>> I checked on 2 different computers, both running spyder 2.1.8 but one >>> with ipython 0.10 and the other with 0.12. The 0.10 works flawlessly, it >>> even reads my .ipython folder and loads the config files, while the 0.12 >>> has the above mentioned bugs. However, downgrading is not an option for >>> me. >>> >>> So who knows where the misconfiguration happens and where to fix it? >>> >>> Cheers >>> >>> Philipp >>> >>> On 03/06/2012 10:37 AM, David Verelst wrote: >>>> >>>> Hi, >>>> >>>> If I understand your mail correct, you are reporting two problems here. >>>> >>>> 1) show() locks the progression of the script until it is closed again. >>>> This behaviour is kind of expected I believe. Although I am not a >>>> developer and I don't grasp the full complexity of this problem, I don't >>>> believe the cause lies with Spyder but with some inherent Python >>>> characteristics combined with how the plotting backend is functioning. A >>>> few days ago I tried to look into the problem a little further and my >>>> conclusions can be found in following thread on this list: >>>> >>>> http://groups.google.com/group/spyderlib/browse_thread/thread/4a47ca60ebf0ace2. >>>> In short mu conclusions: when generating lots of plots in a single >>>> script, don't use interactive plotting but save you pictures as they are >>>> generated and watch them in either .png, .jpg. eps or other formats >>>> (that's how I work). >>>> >>>> If show() works and it results in a figure, I think the interactive mode >>>> is already active (see >>>> http://matplotlib.sourceforge.net/users/shell.html). Have you also tried >>>> additional draw() statements? That will force matplotlib to redraw the >>>> figure. It could be that some plotting commands did not trigger the >>>> draw() command so they haven't made it yet to the interactive figure. As >>>> far as I understand the interactive mode, the only difference is that is >>>> should automatically trigger some draw() statements after each update of >>>> the plot. >>>> >>>> Since there is more to discover of how to deal with this interactive >>>> plotting issue correctly, you can't consider my answer as final. For >>>> instance, just found this: >>>> http://scipy.org/Cookbook/Matplotlib/Interactive_Plotting. I will need >>>> more time to dig in deeper and also raise this matter on the matplotlib >>>> develop/user lists. >>>> >>>> Please correct me if I am wrong on this whole interactive plotting story! >>>> >>>> 2) "ValueError: API 'QString": sorry, I am not much of a help here. >>>> >>>> And now, back to my "real" work. To be continued... >>>> >>>> Regards, >>>> David >>>> >>>> >>>> On 05/03/12 15:16, Philipp Lies wrote: >>>>> >>>>> Hi, >>>>> >>>>> I try to get interactive plotting working using spyder 2.1.8 and >>>>> ipython 0.12 on ubuntu 11.10. Interactive plotting works if I use the >>>>> normal python interpreter as well as in ipython outside of spyder. >>>>> When I load matplotlib and plot something in ipython I have to call >>>>> show() which locks the console until I close the window. If I enable >>>>> interactive plotting manually plotting doesn't work anymore (window >>>>> stays empty). Vanilla spyder configuration (deleted my .spyder2 >>>>> folder). >>>>> Further, when I try to start an ipython kernel or try to connect to an >>>>> externally started kernel I get: >>>>> "ValueError: API 'QString' has already been set to version 1" >>>>> PySide 1.1.0 and PyQt4 4.7.4 are installed. I tried every possible >>>>> combination of API version and library selection in the preferences. >>>>> Didn't change anything. >>>>> Any ideas how I could get a working spyder+ipython configuration >>>>> running? Preferably the ipython kernel with pylab inline but since >>>>> there is an open bug regarding the QString problem I'd be happy if I >>>>> could get the normal ipython interpreter would work properly. >>>>> >>>>> Cheers >>>>> >>>>> Philipp >>>>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "spyder" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/spyderlib?hl=en. >> > -- You received this message because you are subscribed to the Google Groups "spyder" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/spyderlib?hl=en.
