关于windows:Python无法在git bash的命令行中运行

Python not working in the command line of git bash

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

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

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

1
2
3
4
5
6
user@hostname MINGW64 ~
$ type python
python is /c/Python27/python

user@hostname MINGW64 ~
$ python

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


只需在你的git shell中输入这个 - > alias python='winpty python.exe',就是这样,你将拥有python可执行文件的别名。请享用

附:对于永久别名添加,请参见下文,

1
2
cd ~
touch .bashrc

然后打开.bashrc,从上面添加命令并保存文件。
您需要通过控制台创建文件,或者无法使用正确的名称保存文件。您还需要重新启动shell以应用更改。


我没有在答案列表中看到下一个选项,但我可以使用"-i"键获得交互式提示:

1
2
3
4
$ python -i
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55)
Type"help","copyright","credits" or"license" for more information.
>>>


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

To run a Windows console program in mintty or Cygwin sshd, prepend console.exe to the command-line:

1
2
3
4
5
6
$ build/console.exe c:/Python27/python.exe
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type"help","copyright","credits" or"license" for more information.
>>> 10 + 20
30
>>> exit()

msys 的预建二进制文件可能与Git Bash一起使用。 (如果自此答案发布以来已经过了很长时间,请检查是否有更新的版本!)。

从Git for Windows 2.7.1开始,也尝试使用winpty c:Python27/python.exe; WinPTY可以包含在开箱即用中。


我是Windows 10用户,我只是接受默认值,在我的系统中安装了GIT。

在阅读了上述答案之后,我得到了2个自己的解决方案,这2个解决方案完美适用于GIT bash,方便我在GIT bash上执行Python语句。

我附上了我的GIT bash终端的3张图片。第1个有问题,后2个有解决方案。

问题 - 光标只是在点击python命令后等待

enter image description here

解决方案1

在GIT bash终端上执行winpty /python.exe

注意:不要在GIT bash中使用类似路径样式的C:\Users\Admin,而是使用/C/Users/Admin

就我而言,我在GIT bash上执行了winpty /C/Users/SJV/Anaconda2/python.exe命令

或者,如果您不知道用户名,请执行winpty /C/Users/$USERNAME/Anaconda2/python.exe

enter image description here

解决方案2

只需输入python -i即可。

enter image description here

谢谢。


除了@ Charles-Duffy的答案,您可以直接使用winpty而无需安装/下载任何额外的东西。只需运行winpty c:/Python27/python.exe。可以在Git usr bin中找到实用程序winpty.exe。我正在使用Git for Windows v2.7.1

来自@ Charles-Duffy的预构建二进制文件是版本0.1.1(根据文件名),而包含的二进制文件是0.2.2


尝试python -i而不是python,这是一个光标。


Git Bash解决方法 - 使用别名启动Python 2和Python 3

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

Git Bash aliases file is aliases.sh. It is located in:

C:\path where you installed Git\etc\profile.d\aliases.sh

1)打开(使用文本编辑器,如Atom或其他)aliases.sh

例如:在我的情况下,文件在C:\Software\Develop\Git\etc\profile.d\aliases.sh

2)为Python添加别名

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

1
2
3
4
5
6
C:
etworking
etwork Automation\Python 2.7\python.exe
C:
etworking
etwork Automation\Python 3.7\python.exe

所以你必须创建2个别名,一个用于Python 2(我命名为python2),另一个用于Python 3(我命名为python)
Git Bash使用linux文件结构,所以你需要改变""为"/"
如果你有一个像我的例子网络自动化的路径,你把它放在""

"网络自动化",例如

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

所以在aliases.sh的开头添加这些行

1
2
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别名以显示所有文件并在人类可读的列表中:

1
alias ll='ls -lah'

4)保存aliases.sh文件

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

现在,永久地你可以直接从Git shell启动两个Python只是写

$ python - >启动Python 3

$ python2 - >启动Python 2

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

Cheers, Harry


我在Windows 10上通过Visual Studio Code使用MINGW64并尝试安装node-sass(需要python2)。我跟着Github上的felixrieseberg / windows-build-tools#56解决了我的问题。

这是一个特例,但我发布以防有人遇到同样的问题:

npm --add-python-to-path='true' --debug install --global windows-build-tools

这会将python和其他必需的构建工具安装到%USERPROFILE%\.windows-build-tools\python27


输入:'winpty python',它会起作用

gitbash运行任何以python开头的命令时都会遇到一些问题。这适用于任何python manage.py命令。始终以'winpty python manage.py'开头。至少这对我有用。运行Windows 10。


您可以从以下位置更改Git Bash快捷方式的目标:

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

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

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


除了@Vitaliy Terziev的回答

尝试touch .bash_profile,然后在文件中添加别名。


对于vscode中的python版本3.7.3,使用gitbash作为默认终端,我正在处理这个问题一段时间,然后关注@Vitaliy Terziev建议将别名添加到.bashrc但是具有以下规范:

alias python ='"/ c / Users / my user name / AppData / Local / Programs / Python / Python37 / python.exe"'

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

对我来说,"winpty"无法解析vscode中的python路径。


此问题的另一个示例是在Windows中使用来自git bash(MINGW64,Mintty)的AWS Elastic Beanstalk命令行界面(awsebcli,eb cli)(使用git版本2.19.0.windows.1)。

我只是张贴这个,因为我花了一段时间才到这里,搜索eb-cli具体问题。

需要用户输入的命令(如eb initeb config save)似乎会导致冻结/挂起。实际上我猜控制台没有更新请求用户输入的文本。此外,eb deploy仅在命令完成后更新控制台文本,因此在完成之前我无法查看进度更新。

正如git for windows发行说明(适用于v2.19.0)和在Xun Yang的回答中,一个解决方法是运行

winpty eb (而不仅仅是eb )

这个git for windows问题中提出的另一种选择可能是使用windows本机控制台而不是mintty(git安装期间的选项)。


看看这个答案:

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

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

1
PATH=$PATH:/c/Python27/