gpt4 book ai didi

python - 从 cygwin 交互运行 win32 ipython 二进制文件

转载 作者:行者123 更新时间:2023-12-03 00:13:27 25 4
gpt4 key购买 nike

我真的很想在 cygwin 提供的适当终端和 shell 中以交互方式运行我的 Win7 ipython(mintty 或 rxvt 会很棒)。

我在 python 方面取得了一些成功,但 IPython 并没有真正合作。如果我们从 rxvt bash 提示符运行此命令:

$ /cygdrive/c/pydir/python.exe -i

我最终获得了相当成功的 Python 交互式 session 。但普通 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 命令提示符上键入即可)。一旦我放弃了 session ,退出就成了另一个问题。我可以返回 bash 提示符,但没有标准输入。事实证明,总是有一个 python.exe 进程挂起,必须从 Windows 端终止它(并且它不会释放 stdin,直到它终止)。

是否有快速修复或替代方法以这种方式运行 Ipython?我可以使用 cygwin 二进制文件完成大部分开发,但是能够以交互方式运行 win32 二进制文件将在调试/测试特定于 win32 的 python 库时提供巨大帮助。

<小时/>

P.S.::::我真的需要制表符补全和干净的输出。我正在尝试通过一堆 COM 接口(interface)来解决问题,而我能到达任何地方的唯一方法是使用交互式 ipy session 。

P.S.::::我使用的是 64 位 Cygwin 和 32 位 win32 python。这可能是简单的不匹配吗?

最佳答案

在 cygwin 中运行 win32 IPython.exe 可执行文件充其量是有问题的。最好运行 cygwin Ipython 版本。根据您需要的库,这可以很好地工作。但如果您需要使用 win32 编译的库,则 cygwin Ipython 将无法工作(据我所知)。

总的来说,我仍然在努力在 Windows 中使用 ipython 获得愉快的终端体验。没有一种解决方案“有效”。我有 3 种不同的方式与 IPython 交互,具体取决于我需要完成的工作。

  1. 使用cmd.exe(或Console.exe)并运行win32 ipython。 (在我看来)这是 vim+ipython 工作流程的最佳方式。这是非常实用且快速的。它会有点伤害你的眼睛,并且仍然缺乏良好的“终端”体验......但如果你需要磨练一些工作,它会完成工作。额外奖励:似乎一些额外的 ipy %magics 在此工作流程中效果更好。

  2. 使用cygwin和cygwin自带的ipython包。您失去了“ native ”win32 支持,但如果您通常只需要标准库,这会看起来更好并且感觉更好(假设您一直使用 CygwinX 并运行您最喜欢的终端)。

  3. 使用 win32 Ipython,并让 QTConsole 工作。如果您使用的是 Windows 并且尚未尝试过 QTConsole,请立即获取它并花一些时间进行设置。它可以非常快速和令人愉快(字体不会伤害我的眼睛!),并且它具有丰富的功能。它最大的缺点:它不能很好地处理一些%magics(比如%edit,所以我失去了我的vim+ipython工作流程),它不能很好地处理系统后台进程,并且它不会总是像你一样处理stdin/stdout会想。但是,如果您将 QTConsole 与 cmd.exe ipython 结合起来,并给予一点练习和耐心,您可以获得一个相当不错的“控制台”开发工作流程。

关于python - 从 cygwin 交互运行 win32 ipython 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17738286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com