当前位置: 首页 > 知识库问答 >
问题:

Winpty和Git Bash

闻人宜
2023-03-14

我遇到了与Python相同的问题,无法在git bash的命令行中工作,在Git Bash中,当我键入Python时,它就挂起来了。

但是,键入winpty python非常有效。

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

共有1个答案

郎灿
2023-03-14

winpty是一个Windows软件包,提供类似于Unix pty主机的接口,用于与Windows控制台程序通信。

这就是为什么你需要它在这里描述:

该软件的工作原理是使用一个新的隐藏控制台窗口启动winpty agent.exe进程,该窗口连接控制台API和终端输入/输出转义码。它轮询隐藏控制台的屏幕缓冲区的更改,并生成相应的输出流。

rprichard/winpty提到:

该包包括一个库(libwinpty)和一个用于在Cygwin/MSYS pty中运行Windows控制台程序的Cygwin和MSYS工具。

如“mintty/minttyTips”所述:

当与使用本机Windows API进行命令行用户交互(“控制台模式”)的程序交互时,会观察到一些不希望出现的效果;这是pty不兼容问题和字符编码不兼容问题。
这基本上会影响所有未在cygwin或msys环境中编译的程序(请注意,在此上下文中,MinGW不是msys)。

作为一种解决方法,您可以使用winpty作为包装器来调用Windows程序。

因此:

为什么许多工具在普通CygWin中工作,但其中一些工具也需要winpty?

这是在第2645期的msys2/MINGW包中提出的(专门针对Python)

使用winpty会带来非零成本,而且大多数情况下,mintty都可以正常工作。
您的问题源于尝试使用mingw python,这是一种本机windows构建,因此希望从windows控制台使用它。
mintty使用管道进行输入/输出,因此对于大多数程序来说,它看起来不像是一个合适的终端。

另一方面,如果您使用msys2(或cygwin)python(.e.g/usr/local/bin/python2),一切正常。

说明:使用msys2/MINGW-包PR 2675,python3正确检测终端

 类似资料:
  • winpty 是一个 Windows 软件包,提供了类似 Unix pty-master 一样的接口,用于实现控制台程序之间的通讯。该软件包包括一个开发库 (libwinpty) 和一个用于 ygwin 和 MSYS 的工具用于在 Cygwin/MSYS pty 下运行 Windows 控制台程序。 示例: $ winpty powershellWindows PowerShellCopyrigh

  • “Winpty docker run-it dt_test”命令有问题吗?为什么它不起作用? 如何解决此问题以使文件以交互方式运行? 注意:当我以非交互方式运行docker文件时,它似乎工作得很好。根据DockerFile在终端中显示“测试”。

  • 我尝试在git bash shell中运行以下Docker命令。 git bash shell只是提示输入下一个命令,但在屏幕上呈现文本时会出错。如何在git Bash上的Docker容器上正确地附加交互式shell? 我可以在Docker Quickstart终端中运行该命令,但问题是终端输出历史记录非常有限(打印新输出时会丢失旧输出)。或者,我如何在Docker Quickstart终端上扩展

  • 输入设备不是TTY。如果您使用的是mintty,请尝试在命令前加'winpty' 这里该用什么?我正在用Mingw64运行Windows8。

  • 在我运行这个< br > < code > $ docker run-RM-v "/c/users/vipul Rao/documents/github/wappalyzer:/opt/wappalyzer "-it wappalyzer/dev 之后 我收到以下错误。 输入设备不是TTY。如果您使用的是mintty,请尝试在命令前加上“winpty” 我应该在这里使用什么?我在MINGW64的W

  • 问题内容: 关于它们有很多传说。我想知道真相。以下两个示例之间有什么区别? 问题答案: 不确定从何处获得传说,但: 提交按钮 与: IE6将在标记之间提交此按钮的所有文本,其他浏览器将仅提交值。使用可使您在按钮的设计上享有更大的布局自由度。从各种意图和目的看,它乍一看似乎很棒,但是各种浏览器怪癖使它有时很难使用。 在您的示例中,IE6将发送到服务器,而其他大多数浏览器将不发送任何内容。要使其跨浏览