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
...坐在那里,不回到提示。
临时解决方案
只需在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文件。
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
我知道这是一个老帖子,但我刚刚在运行Python 3.8.5和Git 2.28.0.windows.1的Windows 10上遇到了这个问题
不知何故,我还安装了几个不同的2.7x版本的Python。我删除了Python的所有版本(3x和2x),在这里下载了官方安装程序,安装了3.8.5 fresh(只是使用默认值),在这个位置安装了Python 3.8.5:
C:\Users\(用户名)\ AppData \本地Python \程序\ \ Python38
然后,为了让python命令在我的git bash shell中工作,我必须按照这里列出的说明手动将Python38的路径添加到我的路径变量中。注意这一点很重要,因为在出现的第一个模式底部的python安装程序中,它会询问您是否想将python路径添加到path环境变量中。我单击了旁边的复选框,但它实际上并没有添加路径,因此需要手动将路径添加到path环境变量中。
现在使用我的gitbash shell,我可以浏览到一个目录,其中有一个python脚本,只需键入python scriptname .py,它运行没有问题。
我想发布这个,因为这是我所要做的,让我的git shell允许我运行python脚本。我想可能有一些更新,所以我不需要做这里列出的任何其他解决方案。无论如何,如果在Windows 10机器上运行gitbash shell中的python脚本遇到问题,这是另一件可以尝试的事情。
享受。
临时解决方案
只需在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文件。
这个问题的另一个例子是在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安装期间的选项)。