gpt4 book ai didi

python - Winpty 和 Git Bash

转载 作者:太空狗 更新时间:2023-10-29 18:05:43 27 4
gpt4 key购买 nike

我遇到了与 Python not working in the command line of git bash 相同的问题,在 Git Bash 中,当我键入 Python 时,它只是挂起。

但是,输入 winpty python 效果很好。

winpty 到底是什么?为什么上面的命令有用?

最佳答案

winpty是一个 Windows 软件包,提供类似于 Unix pty-master 的接口(interface),用于与 Windows 控制台程序进行通信。

这就是为什么您需要它作为 described here :

The software works by starting the winpty-agent.exe process with a new, hidden console window, which bridges between the console API and terminal input/output escape codes. It polls the hidden console's screen buffer for changes and generates a corresponding stream of output.

rprichard/winpty提及:

The package consists of a library (libwinpty) and a tool for Cygwin and MSYS for running Windows console programs in a Cygwin/MSYS pty.

详见“mintty/mintty Tips”:

When interacting with programs that use a native Windows API for command-line user interaction (“console mode”), a number of undesirable effects are observed; this is the pty incompatibility problem and the character encoding incompatibility problem.
This basically affects all programs not compiled in a cygwin or msys environment (and note that MinGW is not msys in this context).

As a workaround, you can use winpty as a wrapper to invoke the Windows program.


所以:

Why do many tools work in plain CygWin but some of them also need winpty?

这是在 msys2/MINGW-packages issue 2645 中提出的(专门针对 Python)

there's a non-zero cost associated with using winpty, and most of the time, mintty works fine anyway.
Your problem stems from trying to use mingw python which is a native windows build, and hence expects it to be used from a windows console.
mintty uses pipes for input/output, so it doesn't look like a proper terminal to most programs.

On the other hand, if you use msys2 (or cygwin) python (.e.g /usr/local/bin/python2), everything just works.

(使用 msys2/MINGW-packages PR 2675 ,python3 正确检测到终端)

关于python - Winpty 和 Git Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48199794/

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