1

我正在使用 bpython 进行交互式 Python 会话,并且由于我更新了系统,我遇到了以下问题:

在 bpython3 中:

>>> import sys
>>> sys.stdout.flush
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'FakeStream' object has no attribute 'flush'

但是,在 Python3 中:

>>> import sys
>>> sys.stdout.flush
<built-in method flush of _io.TextIOWrapper object at 0x7fab6b7fb708>

IPython3 也是如此。

那么为什么bpython3中sys.stdout没有这个属性呢?flush我搜索了sys模块的源代码,但找不到。我也找不到sysmodule.c文件或类似的东西。bpython 对这个模块使用的代码与其他 CLI 不同吗?

$ bpython3 --version
bpython version 0.12 on top of Python 3.4.2
(C) 2008-2012 Bob Farrell, Andreas Stuehrk et al. See AUTHORS for detail.

$ python3 --version
Python 3.4.2
4

1 回答 1

4

这是在 0.13版本中修复的错误。

升级 pip3 install -U bpython应该更新到包含修复程序的最新稳定版本。

于 2015-02-25T18:12:54.480 回答