在Windows XP上从Emacs使用IPython,无法显示提示和输出
我想在Windows XP上把ipython整合到emacs 23里。网上找了很多信息,但都没能解决我的问题。
在我的~/.emacs.d/init.el
文件里需要以下内容:
- python-mode
- pymacs
- ipython
我也安装了pyreadline。
我通过一个批处理文件启动ipython(这个文件在我的系统路径里),并加上了-i和-u的参数。
信息文本
c:\Program\emacs-23.2\bin>c:\program\python27\scripts\ipython -i -u
Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)]
Type "copyright", "credits" or "license" for more information.
IPython 0.10.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
直到我输入第一个命令之前都不会出现。
我没有看到提示符。
输入和“执行”数字会显示红色的Out[n]:
和数字。Print
什么也不显示。输入a
会出现五颜六色的ipython错误文本,最后显示NameError: name 'a' not defined
。
换句话说,错误信息流似乎正常,标准输出也正常,但print
和负责显示提示符的部分似乎找不到正确的输出流。
emacs的*Message*
缓冲区显示:
comint-send-string: Output file descriptor of Python<1> is closed
对于python shell中每个未出现的输出。
2 个回答
0
我认为是Python解释器本身需要接收这个-u
参数,而不是ipython脚本。也就是说,你的文件C:\Program\Python27\scripts\ipython.bat
应该包含类似下面的内容:
@C:\Program\Python27\python.exe -u C:\Program\Python27\scripts\ipython.py %*
0
确保你使用的是 pyreadline 1.6 版本。1.5 版本即使在 Emacs 中运行时,也会使用控制台的方式来写入数据。这会导致很多和你遇到的问题类似的麻烦。