Python将无法在git bash (Windows)中运行。当我在命令行中输入python时,它会把我带到一个空行,而不会像在Powershell中那样说它已经输入了python 2.7.10。它没有给我一个错误消息,但python就是不运行。

我已经确保PATH中的环境变量包括c:\python27。我还能检查什么?


发生此问题的会话如下所示:

user@hostname MINGW64 ~
$ type python
python is /c/Python27/python

user@hostname MINGW64 ~
$ python

...坐在那里,不回到提示。


当前回答

输入:'winpty python',它将工作

在运行任何以python开头的命令时,git会出现一些问题。这也适用于任何python manage.py命令。总是以“winpty python manage.py”开头,至少这对我来说是有效的。运行Windows 10。

其他回答

输入:'winpty python',它将工作

在运行任何以python开头的命令时,git会出现一些问题。这也适用于任何python manage.py命令。总是以“winpty python manage.py”开头,至少这对我来说是有效的。运行Windows 10。

这个问题的另一个例子是在windows(使用git版本2.19.0.windows.1)中从git bash (MINGW64, Mintty)使用AWS Elastic Beanstalk命令行界面(awsebcli, ebcli)。

我只是发布这个,因为我花了一段时间来结束这里,搜索eb-cli的具体问题。

像eb init或eb config save这样需要用户输入的命令似乎会导致冻结/挂起。实际上,我猜控制台并没有更新请求用户输入的文本。此外,eb deploy只在命令完成后更新控制台文本,所以直到完成我才看到进度更新。

正如git for windows发布说明(v2.19.0版)中提到的,例如在Xun Yang的回答中,一个解决方案是运行

Winpty eb <command>(而不是eb <command>)

另一种选择,正如在这个git for windows问题中所建议的,可以使用windows本机控制台而不是mintty (git安装期间的选项)。

在我的Git Bash中,以下命令挂起,我没有得到提示:

% python

所以我只用:

% winpty python

如上所述,你还可以使用:

% python -i

2020-07-14: Git 2.27.0增加了对伪控制台的可选实验性支持,允许从命令行运行Python:

见所附会议。

这是MSys2中的一个已知错误,MSys2提供了Git Bash使用的终端。你可以在没有ncurses支持的情况下运行Python构建,或者使用WinPTY来解决这个问题,使用方法如下:

要在mintty或Cygwin sshd中运行Windows控制台程序,将console.exe前置到命令行: c:/Python27/python.exe win32上的Python 2.7.2(默认,2011年6月12日,15:08:59)[MSC v.1500 32位(Intel)] 输入“帮助”,“版权”,“版权”或“许可”以获取更多信息。 >>> 10 + 20 30. > > >退出()

预构建的msys二进制文件很可能与Git Bash一起工作。(如果这个答案已经发布了很长一段时间,请检查是否有更新的版本!)


对于Git for Windows 2.7.1,也可以尝试使用winpty c:Python27/python.exe;WinPTY可能包括开箱即用。

如果你运行Windows PowerShell命令并发生错误,错误记录将被追加到名为$error的“自动变量”中。

您可以在同一个PowerShell会话中使用$error变量来查找错误。

$Error变量包含一个信息集合,这就是为什么使用$Error[0]可以获得错误消息对象的原因。此外,$Error[0]变量将保存遇到的最后一个错误消息,直到PowerShell会话结束。