为什么我在 ipython 上收到“事件循环中未处理的异常”错误

zig*_*ggy 16 python

我最近开始使用 ipython。现在我经常在执行任何操作时收到此消息,即使是像定义变量这样的简单操作:

>>> num = 1

Unhandled exception in event loop:
File "c:\users\USER\appdata\local\programs\python\python38-32\lib\asyncio\proactor_events.py", line 768, in _loop_self_reading
    f.result()  # may raise
File "c:\users\USER\appdata\local\programs\python\python38-32\lib\asyncio\windows_events.py", line 808, in _poll
    value = callback(transferred, key, ov)   
File "c:\users\USER\appdata\local\programs\python\python38-32\lib\asyncio\windows_events.py", line 457, in finish_recv
    raise ConnectionResetError(*exc.args)

Exception [WinError 995] The I/O operation has been aborted because of either a thread exit or an application request
Press ENTER to continue...
Run Code Online (Sandbox Code Playgroud)

对于同一命令,此消息有时会显示,有时不会。不知道我做错了什么。普通的解释器没有这个问题。使用 3.8 并通过 cmd 安装 ipython 7.10.2。谢谢。

zig*_*ggy 24

我设法解决了这个问题。ipython v7.10.2 和提示工具包 v3.x 之间存在一些不兼容。但是,降级到提示工具包 v2.x 时一切正常:

python -m pip install -U prompt-toolkit~=2.0
Run Code Online (Sandbox Code Playgroud)

我被 github 的 ipython 工作人员建议这样做(因此感谢他们)。

  • 最近升级“ipython”(及其所有依赖项)后遇到了同样的问题。以前,它只是随机提示我“按 Enter 继续”以获取不需要的内容(“在 [1]: 1 + 2”中大约有三分之一的时间会这样做);升级后,它也开始转储您所描述的相同回溯。降级“prompt_toolkit”似乎已经解决了这两个问题。猜测这两种情况下的问题是相同的,但是不同版本的“ipython”及其各种依赖项发生了变化,无论它是大声死亡(带回溯)还是安静死亡(仅提示“按 Enter”)。谢谢! (2认同)