我真的很想在 cygwin 提供的适当终端和 shell 中以交互方式运行我的 Win7 ipython(mintty 或 rxvt 会很棒)。
我在 python 方面取得了一些成功,但 IPython 并没有真正合作。如果我们从 rxvt bash 提示符运行它:
$ /cygdrive/c/pydir/python.exe -i
我最终得到了一个相当成功的 python 交互式会话。但是 vanilla python 并不像 IPython 那样美妙。那么我试试这个:
$ /cygdrive/c/pydir/ipython.exe
并且该程序只是阻止了 bash 提示符,并且似乎产生了一个完全独立的进程(它不会产生任何窗口,或显示 stdin/stdout 的迹象)。
如果相反,我使用这个:
$ /cygdrive/c/pydir/python.exe -i /cygdrive/c/pydir/ipython-script.py
一开始很令人兴奋,但你很快就会意识到 ipython 没有正确地与终端交互。没有 readline 支持,光标控制不佳,stdin 似乎可以处理典型的 python,但是没有 [out] 提示(尽管“打印”确实会吐出文本),简单的东西,如退格/回车/制表符似乎完全坏了(光标非常挑衅),没有什么比维护 ncurse 缓冲区(您可以在 ipy 命令提示符下键入)。一旦我放弃了会话,退出就成为另一个问题。我可以返回到 bash 提示符,但我没有标准输入。事实证明,总是有一个 python.exe 进程挂起,必须从 Windows 端杀死(并且它不会释放标准输入,直到它死掉)。
是否有快速修复或替代方法以这种方式运行 Ipython?我可以使用 cygwin 二进制文件完成大部分开发工作,但是能够交互式运行 win32 二进制文件将在调试/测试特定于 win32 的 python 库时有很大帮助。
PS:::: 我真的需要制表符完成和干净的输出。我试图通过一堆 COM 接口拼凑出我的方式,而我可以到达任何地方的唯一方法是使用交互式 ipy 会话。
PS:::: 我使用的是 64 位 Cygwin 和 32 位 win32 python。这可能是简单的不匹配吗?