【发布时间】: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)。”