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

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


当前回答

对我有用的一个是前面提到的这些伟大的回答是别名如下: (我使用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提供的非常有用的答案。

其他回答

输入命令PY而不是Python。调用解释器 (python.org)。

python.exe -i工作,但通过发送“^Z”(CTRL+Z)退出交互模式时出现问题。因此,在Git Bash for Windows中使用winpty python.exe似乎更好。 使用~/bin目录创建一个包装/引用文件(如~/bin/python),该文件可以在任何地方访问(您可以使用不同版本的引用,如~/bin/python37)。 文件内的代码:

#!/usr/bin/env bash
# maybe declare env vars here like
# export PYTHONHOME=/c/Users/%USERNAME%/.python/Python36
# export PATH="${PATH}:/c/Users/%USERNAME%/.python/Python36"

# replace %USERNAME%,
# or use "~" instead of "/c/Users/%USERNAME%" if it works
winpty /c/Users/%USERNAME%/.python/Python36/python.exe ${@}

我只是不喜欢这些“神奇”的别名,你总是忘记它是从哪里来的,有时在某些情况下会导致问题。

使用~/bin/python文件和-i参数:

#!/usr/bin/env bash
if [ -z "${@}" ]; then
    # empty args, use interactive mode
    /c/Users/%USERNAME%/.python/Python36/python.exe -i
else
    /c/Users/%USERNAME%/.python/Python36/python.exe ${@}
fi

看看这个答案:

Git Bash不会运行我的python文件?

Git Bash中的路径应该这样设置:

PATH=$PATH:/c/Python27/

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

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

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

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

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