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

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


当前回答

这是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可能包括开箱即用。

其他回答

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

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

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

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

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 Workaround-启动带有别名的Python 2和Python 3

嗨。这是(对我来说)运行Python (Python 2.7和Python 3.x)的最佳解决方案,直接从Git Bash在Win 10 =>上添加别名到Git Bash使用的别名文件中。

Git Bash别名文件是alias .sh。它位于: C:安装Git\etc\profile.d\alias .sh的路径

1)打开aliases.sh(使用Atom等文本编辑器)

例如:在我的例子中,文件在C:\Software\Develop\Git\etc\profile.d\alias .sh

2)添加Python的别名

在我的例子中,python.exe被安装在:

C:\Networking\Network Automation\Python 2.7\python.exe
C:\Networking\Network Automation\Python 3.7\python.exe

所以你必须创建2个别名,一个用于Python 2(我命名为python2),另一个用于Python 3(我只命名为Python) Git Bash使用linux文件结构,所以你需要将“\”改为“/” 如果你有一个像我举的Network Automation这样的路径,你可以用" "

例如,“网络自动化”。

Winpty是调用可执行文件的神奇命令。

因此,在alias .sh的开头添加这些行

alias python2='winpty C/Networking/"Network Automation"/"Python 2.7"/python.exe'
alias python='winpty C/Networking/"Network Automation"/"Python 3.7"/python.exe'

3)添加或修改其他别名(如果需要)

我还修改了ll别名,以显示所有文件,并在一个人类可读的列表中:

alias ll='ls -lah'

4)保存alias .sh文件


5)好吧! !关闭并重新启动Git Bash

现在,你可以直接从Git shell中启动这两个Python

$ python ->启动python

$ python2 ->启动Python 2

$ ll ->输入ls -lah快速显示您的详细文件列表

干杯,哈利

看看这个答案:

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

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

PATH=$PATH:/c/Python27/

这是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可能包括开箱即用。