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

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


当前回答

您可以更改目标为Git Bash快捷方式从:

"C:\Program Files\Git\git-bash.exe" --cd-to-home 

to

"C:\Program Files\Git\git-cmd.exe" --no-cd --command=usr/bin/bash.exe -l -i

这是ConEmu用来启动git bash的方式(版本16)。最近的版本正常启动,这就是我如何到达那里…

其他回答

这个问题的另一个例子是在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安装期间的选项)。

临时解决方案

只需在windows上的git shell中输入这个- > alias python='winpty python.exe',这就是所有的内容,你将有python可执行文件的别名。这个别名在shell会话期间有效。

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

永久的解决方案

将该命令添加到用户主目录下的.bashrc。可以使用CLI或文本编辑器:

使用CLI

这可以从git bash中完成,如下所示:

echo "alias python='winpty python.exe'" >> ~/.bashrc

如果文件不存在,它将在当前用户的主目录中创建.bashrc,如果存在,则将别名附加到.bashrc的末尾。

使用文本编辑器

或者,你可以先创建一个.bashrc。取决于你的文件管理器,这可能更容易在git bash中完成,如下所示:

cd ~
touch .bashrc

此时,您可以在首选的文本编辑器中打开.bashrc并将其添加到其中。

要应用更改,可以使用命令源.bashrc或重新启动shell。

更新

新版本的Git不再使用.bashrc,而是使用.bash_profile。Conda在初始化时也使用这个配置文件,因此请确保不要覆盖或删除初始化块。在这里查看更多:Git for Windows不执行我的.bashrc文件。

对于vscode中的python 3.7.3版本,gitbash作为默认终端,我处理了一段时间,然后遵循@Vitaliy Terziev的建议,将别名添加到.bashrc,但使用以下规范:

alias python= ' " /c/Users/我的用户名/AppData/Local/Programs/ python /Python37/python.exe " '

注意单引号和双引号的组合,因为“我的用户名”空格。

对我来说,“winpty”无法在vscode中解析python路径。

对我有用的一个是前面提到的这些伟大的回答是别名如下: (我使用anaconda,所以首先找到python路径的位置,然后将其添加到git bash的别名中)。 1. 在anaconda终端上运行:where python 2. 在git bash上运行:alias python='winpty ' C:\ProgramData\Anaconda3\envs\your_env_name\python.exe"' 3.完成了。Python是在git Bash中使用别名定义的。

感谢Vitaliy Terziev和hygull提供的非常有用的答案。

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

% python

所以我只用:

% winpty python

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

% python -i

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

见所附会议。