Winpty and Git Bash

后端 未结 1 1658
时光取名叫无心
时光取名叫无心 2020-12-04 12:44

I had the same issue as Python not working in the command line of git bash, where in Git Bash, when I type Python, it just hangs.

However, typing

相关标签:
1条回答
  • 2020-12-04 13:04

    winpty is A Windows software package providing an interface similar to a Unix pty-master for communicating with Windows console programs.

    That is why you need it as 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 mentions:

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

    As detailed in "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.


    So:

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

    This was asked (specifically for Python) in msys2/MINGW-packages issue 2645

    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.

    (With msys2/MINGW-packages PR 2675, python3 detects the terminal correctly)

    0 讨论(0)
提交回复
热议问题