Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从cygwin以交互方式运行win32 ipython二进制文件_Python_Cygwin - Fatal编程技术网

从cygwin以交互方式运行win32 ipython二进制文件

从cygwin以交互方式运行win32 ipython二进制文件,python,cygwin,Python,Cygwin,我真的很想在cygwin提供的合适的终端和shell中以交互方式运行我的Win7 ipython(mintty或rxvt会很好) 我在python方面取得了一些成功,但IPython并没有真正合作。如果从rxvt bash提示符运行此命令: $ /cygdrive/c/pydir/python.exe -i 最后,我完成了一个相当成功的python交互式会话。但是香草蟒蛇并没有IPython那么棒。那么我就试试这个: $ /cygdrive/c/pydir/ipython.exe 该程序只是

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

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

$ /cygdrive/c/pydir/python.exe -i
最后,我完成了一个相当成功的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]提示(尽管“prints”确实会吐出文本),简单的事情,如backspace/enter/tab似乎完全被破坏(光标非常违抗),没有任何东西像ncurse缓冲区那样被维护(您只需在ipy命令提示下键入即可)。 一旦我放弃了会话,退出就成了另一个问题。我可以返回bash提示符,但我没有标准的输入。事实证明,总有一个python.exe进程挂起,必须从Windows端终止(并且直到它死了才释放stdin)

有没有一种快速修复或替代方法可以以这种方式运行Ipython?我可以使用cygwin二进制文件进行大部分开发,但是能够运行win32 binaries interactive将在调试/测试win32特定python库时大有帮助


附言:我真的需要完成制表符和干净的输出。我正试图通过一堆COM接口拼凑出我的方法,而我能到达任何地方的唯一方法是使用交互式ipy会话


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

在Cygwin中运行win32 IPython.exe可执行文件最多也有问题。最好运行Cygwin IPython版本。根据需要的库,这可以正常工作。但是如果需要使用win32编译库,Cygwin IPythonn不起作用(据我所知)

总的来说,我仍然在为在Windows中使用ipython获得愉快的终端体验而奋斗。没有一种解决方案“只起作用”。根据我需要完成的工作,我有3种不同的方式与ipython交互

  • 使用cmd.exe(或Console.exe)并运行win32 ipython。这是vim+ipython工作流的最佳方式(在我看来)。这非常实用且快速。它会稍微伤害你的眼睛,并且仍然缺少一个好的“终端”经验…但是如果你需要努力完成一些工作,它会完成工作。额外的好处:似乎一些额外的ipy%魔法在这个工作流中工作得更好

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

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


  • 也许这就是我应该在windows端使用ipython内核的地方,然后使用cygwin二进制文件来提供前端?从那时起我就解决了你的问题?@novox请检查我下面的答案。我下面有一个答案,但不是一个很好的解决方案。我常用的解决方案已经列出,你必须自己决定使用哪种解决方案你还好吗。