<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
Hi, Jorgen,<BR>&nbsp;<BR>I am very glad to make this work and it really took me a lot of time. Unfortunately, I do not know how to generate patch and use svn. However, since the change is very straight forward, I attached this file with email. Please put back the change in future pyreadline release.<BR>&nbsp;<BR>The emacs environment is set by the emacs automatically. I did not do anything.<BR>&nbsp;<BR>Thanks<BR>&nbsp;<BR>Frank<BR><BR>&gt; Date: Fri, 4 Jan 2008 19:13:14 +0100<BR>&gt; From: jorgen.stenarson@bostream.nu<BR>&gt; To: fw3@hotmail.co.jp<BR>&gt; CC: ipython-user@scipy.org<BR>&gt; Subject: Re: [IPython-user] Finally, ipython works in emacs<BR>&gt; <BR>&gt; wang frank skrev:<BR>&gt; &gt; I have fixed the problem. After adding the code at line 380, I also need <BR>&gt; &gt; to add WriteFile at 149. It is great to make this work.<BR>&gt; &gt; <BR>&gt; &gt; How to setup the EMACS environment in ipython? Why these codes have been <BR>&gt; &gt; removed from pyreadline?<BR>&gt; &gt; <BR>&gt; &gt; Thanks<BR>&gt; &gt; <BR>&gt; &gt; Frank<BR>&gt; I'm happy to hear you got it to work. I think the code disappeared in <BR>&gt; when we did some code reorganization a while back. And since I don't use <BR>&gt; emacs I never realized it.<BR>&gt; <BR>&gt; The purpose of the EMACS environent variable test is that you should be <BR>&gt; able to set that variable from emacs before starting ipython thus <BR>&gt; ensuring that this code only runs if ipython is launched from emacs. I <BR>&gt; don't know how to do this in emacs so if you have some other idea on how <BR>&gt; to achieve the same goal please let me know.<BR>&gt; <BR>&gt; If possible please send a patch file for your changes generated by svn <BR>&gt; diff. (Don't forget to svn up first)<BR>&gt; <BR>&gt; /Jörgen<BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; ------------------------------------------------------------------------<BR>&gt; &gt; From: fw3@hotmail.co.jp<BR>&gt; &gt; To: jorgen.stenarson@bostream.nu<BR>&gt; &gt; Date: Thu, 20 Dec 2007 23:27:29 +0000<BR>&gt; &gt; CC: ipython-user@scipy.org<BR>&gt; &gt; Subject: Re: [IPython-user] Finally, ipython works in emacs<BR>&gt; &gt; <BR>&gt; &gt; Thanks for the help.<BR>&gt; &gt; <BR>&gt; &gt; I have added the code into the console.py as<BR>&gt; &gt; def write_color(self, text, attr=None):<BR>&gt; &gt; junk = c_int(0)<BR>&gt; &gt; self.WriteFile(self.hout, text, len(text), byref(junk),None)<BR>&gt; &gt; return len(text)<BR>&gt; &gt; write_plain = write_color<BR>&gt; &gt; <BR>&gt; &gt; I did not put the EMACS environment check since I do not know how.<BR>&gt; &gt; It does not fix the problem. After I added the code and install the<BR>&gt; &gt; pyreadline, the Out[] prompt disappeared. After I quit the ipython,<BR>&gt; &gt; I got the same error:<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit<BR>&gt; &gt; (Intel)] on win32<BR>&gt; &gt; Type 'help', 'copyright', 'credits' or 'license' for more information.<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; ERROR - failed to write data to stream:<BR>&gt; &gt; &lt;pyreadline.console.console.Console object at 0x0133BBB0&gt;<BR>&gt; &gt; Process Python finished<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; &gt; Date: Thu, 20 Dec 2007 21:41:17 +0100<BR>&gt; &gt; &gt; From: jorgen.stenarson@bostream.nu<BR>&gt; &gt; &gt; To: fw3@hotmail.co.jp<BR>&gt; &gt; &gt; CC: ipython-user@scipy.org<BR>&gt; &gt; &gt; Subject: Re: [IPython-user] Finally, ipython works in emacs<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; wang frank skrev:<BR>&gt; &gt; &gt; &gt; I have finally made the ipython works in emacs. The solution is to<BR>&gt; &gt; &gt; &gt; uninstall the pyreadline library. I do not know the reason and<BR>&gt; &gt; hopefully<BR>&gt; &gt; &gt; &gt; the expert can figure it out using my previouse email which<BR>&gt; &gt; includes the<BR>&gt; &gt; &gt; &gt; debug information.<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; I think this solution has one problem that is when I run the<BR>&gt; &gt; ipython in<BR>&gt; &gt; &gt; &gt; the command shell, without pyreadline it will causes problem.<BR>&gt; &gt; Can I keey<BR>&gt; &gt; &gt; &gt; the pyreadline but do not use it when I am in emacs?<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; There is a commandline flag to turn pyreadline off in ipython. But I<BR>&gt; &gt; &gt; don't know if it turns pyreadline off completely. I believe there is<BR>&gt; &gt; &gt; some import magic that always imports readline if it is available<BR>&gt; &gt; even<BR>&gt; &gt; &gt; if completion and such things are not enabled.<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; There used to be some code to deal with emacs in<BR>&gt; &gt; &gt; pyreadline/console/console.py but it seems to have fallen away.<BR>&gt; &gt; &gt; I don't know if it is relevant to your problem. But you could try<BR>&gt; &gt; to add<BR>&gt; &gt; &gt; them in again.<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; These lines used to be in around line 377 in<BR>&gt; &gt; pyreadline/console/console.py:<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; if os.environ.has_key('EMACS'):<BR>&gt; &gt; &gt; def write_color(self, text, attr=None):<BR>&gt; &gt; &gt; junk = c_int(0)<BR>&gt; &gt; &gt; self.WriteFile(self.hout, text, len(text), byref(junk),None)<BR>&gt; &gt; &gt; return len(text)<BR>&gt; &gt; &gt; write_plain = write_color<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; It is activated if you set an environment variable named EMACS<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Now I'm off for christmas and will return in january<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; /Jörgen<BR>&gt; &gt; &gt;<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; ------------------------------------------------------------------------<BR>&gt; &gt; 「MSN クリスマス特集」今年は、最高の愛あふれるクリスマスにしません<BR>&gt; &gt; か。 http://event.jp.msn.com/xmas2007/<BR>&gt; &gt; &lt;http://clk.atdmt.com/GBL/go/msnjpqjl0040000017gbl/direct/01/&gt; <BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; ------------------------------------------------------------------------<BR>&gt; &gt; 「MSN クリスマス特集」今年は、最高の愛あふれるクリスマスにしませんか。 <BR>&gt; &gt; http://event.jp.msn.com/xmas2007/ <BR>&gt; &gt; &lt;http://clk.atdmt.com/GBL/go/msnjpqjl0040000017gbl/direct/01/&gt;<BR>&gt; <BR><BR><br /><hr />出会いがない、と嘆いているあなたにぴったりの恋人探し!まずは無料検索! <a href='http://clk.atdmt.com/GBL/go/msnjpqjl0040000020gbl/direct/01/' target='_new'>http://match.jp.msn.com/channel/index.aspx?avo=1&trackingid=1034447</a></body>
</html>