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.

Reply via email to