【问题标题】:Gitbash Hangs on 'python' CommandGitbash 挂在 \'python\' 命令上
【发布时间】:2022-10-31 09:07:50
【问题描述】:

我最近在 gitbash 中运行了一个 python 测试程序。它看起来像这样:

COST_OF_FRISBEE = 15
num_frisbees = int(input("How many frisbees do you want? "))
result = COST_OF_FRISBEE * num_frisbees
print("The total cost is " + str(result))

并保存在名为 hw4.py 的文件中。不幸的是,当我使用命令python3 hw4.py 运行程序并按照程序提示输入数字时,在我按下键盘上的回车键后 gitbash 挂起。它实际上允许我多次按回车键并继续输入内容。我截取了它的样子:

从我的键盘输入以下内容后截取了屏幕截图:python3 hw4.py,return,3,return(3 次),asdf,向上箭头键(5 次),Backspace(4 次)。您可以从屏幕截图中看到 gitbash 让我删除文件路径提示的一部分(这永远不会发生),这让我非常困惑。我也尝试过 ctrl-C'ing 和 ctrl-D'ing ,但没有任何反应。摆脱它的唯一方法是关闭整个窗口,在此尝试期间我收到一个弹出窗口警告我有一个正在进行的进程,我将不得不终止。我试过用谷歌搜索,但我得到的唯一搜索结果是命令行上无法识别命令“python3”,这是一个完全不同的问题。

请帮忙!谢谢!

编辑:我在家里的电脑上尝试了同样的事情(最初的问题发生在我的工作笔记本电脑上),发现了一些有趣的东西,让我认为这与我的 Python 安装有关,而不是与缓冲区刷新有关。在下面的屏幕截图中,您可以看到,当我简单地键入“python”并按照我上面描述的相同按键操作时,我得到了同样令人讨厌的挂起行为:

但是,只有当我的 .bashrc 文件如下所示时才会发生这种情况:

export PATH="$PATH:/c/PATH_TO_PYTHON/Python/Python310 : /c/PATH_TO_PYTHON/Python/Python310/Scripts"

当我的 .bashrc 看起来像这样时,而不是......

export PATH="$PATH:/c/PATH_TO_PYTHON/Python/Python310 : /c/PATH_TO_PYTHON/Python/Python310/Scripts"
alias python="winpty python.exe"

...我能够输入 python 解释器,并且工作正常,即使它不是我想要的。需要明确的是,我希望能够直接从 gitbash CLI 使用命令“python3 hw4.py”或“python hw4.py”运行我的 python 文件。我过去能够做到这一点,所以我知道这是可能的!

最后一点,如果您尝试重现该问题,请确保在编辑 .bashrc 文件后关闭您的 gitbash 会话,以便您的编辑更改生效。

再次感谢您的帮助。

【问题讨论】:

  • 如果您启动一个新终端并且不使用vim,那么它可以工作吗?我想知道vim 是否正在破坏终端配置。您也可以尝试检查您的 Bash 配置是否有任何更改终端设置的内容,或者尝试使用简单的提示来避免导致问题的可能性。
  • 顺便说一句,欢迎来到 Stack Overflow!如果您需要任何提示,请查看How to Ask
  • 您也可以尝试使用其他 shell,例如 CMD 或 PowerShell。或其他终端,如 Windows 终端。
  • 需要出于某种原因,使用 Git Bash 运行 Python?或者这只是为了解决它自己的问题?
  • 请参阅 Git For Windows known issues,其中指出“某些控制台程序,尤其是非 MSYS2 Python、PHP、Node 和 OpenSSL,只有在通过 winpty 调用时才能与 MinTTY 正确交互(例如,Python 控制台需要以 @987654337 启动@ 而不仅仅是 python)。”

标签: python git-bash


【解决方案1】:

由于您的代码中没有错误,这表明您的 python 安装存在问题。

超级用户的交叉引用文章:Git-Bash not running Python3 as expected, hanging issues

提供有关使用 winpty 创建将在 winpty 而不是 gitbash 中运行 python 的别名的建议。

在 gitbash 中使用 winpty python3 <file>.py 而不是 python3 <file>.py 启动你的 python 文件

【讨论】:

  • 我在对 OP 的编辑中更清楚地说明了这一点,但我希望能够直接从 gitbash CLI 使用命令“python3 h4.py”或“python hw4.py”运行我的 python 文件。我以前从 gitbash 运行过 python 脚本,所以我知道这是可能的......
猜你喜欢
  • 2012-03-06
  • 1970-01-01
  • 2021-09-08
  • 2015-06-05
  • 2014-09-21
  • 2015-07-29
  • 2014-04-12
  • 2018-05-17
相关资源
最近更新 更多