我会尝试尽可能的描述清楚但简短...
我过去曾在 Win10 上成功使用过 GitBash。有一段时间没用过 Windows 机器后,我又回到了 Windows 机器上,似乎无法让它启动之前毫无问题地运行的 Python 脚本。我为 Python3 创建了一个名为 py 的别名。例如...
$ py --version
Python 3.7.1
我可以很好地进入迭代器
$ py -i
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
我可以在迭代器中很好地运行我的脚本。但是,使用 ctrl+z 退出会引发错误。与此错误相关的是,当我尝试从命令行运行脚本时,它会挂起并且没有响应。见下文...
$ py -i
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 0 [sig] bash 5224! sigpacket::process: Suppressing signal 18 to
win32 process (pid 5160)
>>> exit()
$ py Lottery.py
从此时起,它什么都不做,直到我按下“Enter”,此时它会抛出一个 Python 错误并返回到我的命令行。我知道 Python 脚本正在运行。如果有帮助,我可以发布 Python 错误,尽管我认为这是转移注意力的借口,而不是手头 GitBash 问题的症结所在。
关于为什么在尝试运行 Python 脚本时 GitBash 无法正常运行,您有什么想法吗?提前致谢!
答案1
这是 Windows 10 的一个已知问题。GitBash 的终端与 Windows 原生应用程序存在问题,例如python
、、等powershell
。ipython
- 终端会吞噬事件,例如您的屏幕截图。这会破坏
ctr+c
/ctrl+z
事件,从而阻止退出 - 此外,这些应用程序会破坏光标移动,严重破坏外壳。
解决方案是运行winpty
,您应该已经从 git-bash 中拥有它。现在 git-bash 可以毫无问题地运行应用程序。
$ winpty python -i
这修复了python -i
、ipython -i
、两个问题powershell
。我使用以下别名:
alias ipython='winpty ipython'
alias python='winpty python'
alias node='winpty node'
alias powershell='winpty powershell'
另一种解决方案是使用不同的终端,例如Windows Terminal
最近 Windows 发布了新的Windows 终端
现在它支持所有 bash 应用程序、完整的 utf-8 支持(我见过的最好的 Windows 终端、256+ ANSI 颜色等)您不再需要winpty
.
编辑您的 JSON 配置以使用:
"commandline" : "ipython.exe"
如果您正在使用python -i
,请查看 ipython。
将其与winpty
或 终端结合运行ipython
。这对生活质量和可用性来说是一个巨大的提升。
它增加了很多。
foo?
使用和获取函数签名和文档foo??
- 复制->粘贴有效。
- 使用任何超过一行的语句的生活质量都得到了极大改善
- 语法高亮,甚至匹配括号
- 姓名的制表符补全和检查以下属性:
x = "hi world"
x.<tab> # all `str` methods pop-up.
# or
import time
time.monotonic?
使用获取
python -m pip install ipython