Brian,<br><br><div class="gmail_quote">2010/6/18 Brian Granger <span dir="ltr">&lt;<a href="mailto:ellisonbg@gmail.com">ellisonbg@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div class="h5">
&gt; Since v1.1.0 (which has recently reached Release Candidate 1), IPython has<br>
&gt; been integrated in the external console.<br>
&gt; See here: <a href="http://spyderlib.googlegroups.com/web/ipython.png" target="_blank">http://spyderlib.googlegroups.com/web/ipython.png</a><br>
&gt; and there: <a href="http://spyderlib.googlegroups.com/web/spyder_light.png" target="_blank">http://spyderlib.googlegroups.com/web/spyder_light.png</a><br>
&gt; That is great news (and I hope that you will be excited by these<br>
&gt; screenshots), and following this, Spyder v2.0 should be almost completely<br>
&gt; based on IPython.<br>
&gt; However, I still have some difficulties with IPython and I would really<br>
&gt; appreciate some help to fix these bugs.<br>
&gt; First of all, let me explain how it works. It&#39;s quite simple actually: I&#39;m<br>
&gt; opening a Python interpreter in another process (QProcess) and this<br>
&gt; interpreter executes a startup script which is here:<br>
&gt; <a href="http://code.google.com/p/spyderlib/source/browse/spyderlib/widgets/externalshell/startup.py" target="_blank">http://code.google.com/p/spyderlib/source/browse/spyderlib/widgets/externalshell/startup.py</a><br>

&gt; Now you can see that on Windows platforms, I&#39;m forced to do ugly things to:<br>
&gt; 1. fix the encoding which is not properly detected by Python in the QProcess<br>
&gt; (I assume that it&#39;s a Python bug on Windows) and cause errors in pyreadline<br>

</div></div>&gt;<br>Not sure about this one.<br></blockquote><div><br>Maybe I wasn&#39;t clear: this is not an IPython issue at all. This is only Python itself which is unable to detect stdout encoding when you are running it in a separate process on Windows (e.g. the same issue occurs in emacs running a Python shell on win32).<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">
&gt; 2. change the sys.platform to anything but &#39;win32&#39; to prevent IPython from<br>
&gt; doing this: (in IPython.genutils):<br>
&gt; if sys.platform == &#39;win32&#39; and readline.have_readline:<br>
&gt;     Term = IOTerm(cout=readline._outputfile,cerr=readline._outputfile)<br>
<br>
</div>When we separate IPython into two processes, this logic will be<br>
modified, so this should be taken care of.<br>
<div class="im"><br>
&gt; 3. add an environment variable (to the QProcess): TERM=emacs, to prevent<br>
&gt; IPython from using msvcrt for the &#39;page_more&#39; function implementation<br>
&gt; because like emacs, Spyder doesn&#39;t like to be bypassed with msvcrt.getch()<br>
&gt; (see IPython.genutils.page_more definitions)<br>
<br>
</div>The paging functionality will need to be refactored as well.<br>
<br>
For now, I think the hacks you are doing are probably the best way to<br>
go - at least until we get the two process stuff working in ipython<br>
itself this summer.<br>
<div class="im"><br>
&gt; Worse, I found a very strange bug happening when opening a PyQt file dialog<br>
&gt; (QFileDialog.xxx) from a mainwindow -- e.g. when using the &quot;save figure&quot;<br>
&gt; feature in a matplotlib figure: the GUI window freezes and switching back to<br>
&gt; the IPython console and pressing Enter will unblock it! This bug only<br>
&gt; happens in a IPython session launched into a Python interpreter running in a<br>
&gt; separate process (it does not happen in a simple Python interpreter running<br>
&gt; in a separate process).<br>
<br>
</div>This probably has something to do with threading and event loops.  You<br>
will definitely run into problems with the current designof ipython.<br>
Again, this is one of our top priorities that we are working on this<br>
summer.<br></blockquote><div><br>I really hoped that someone could think of a workaround for this one... I&#39;m quite stuck with it! :)<br>And I hope I won&#39;t have to wait until next IPython is released to fix this bug: v0.10 has still not spread everywhere judging from users feedbacks.<br>
<br>Cheers,<br>Pierre<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><br>
&gt; Any help would be really appreciated!<br>
<br>
</div>I would join the ipython-dev list to follow along as we progress this summer.<br>
<br>
Cheers,<br>
<br>
Brian<br>
<br>
&gt; Thanks,<br>
&gt; Pierre<br>
&gt; _______________________________________________<br>
&gt; IPython-User mailing list<br>
&gt; <a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>
&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
&gt;<br>
&gt;<br>
<font color="#888888"><br>
<br>
<br>
--<br>
Brian E. Granger, Ph.D.<br>
Assistant Professor of Physics<br>
Cal Poly State University, San Luis Obispo<br>
<a href="mailto:bgranger@calpoly.edu">bgranger@calpoly.edu</a><br>
<a href="mailto:ellisonbg@gmail.com">ellisonbg@gmail.com</a><br>
</font></blockquote></div><br>