非常简单的程序崩溃 Python 3.5 和 spyder

Very Simple Program Crashing Python 3.5 and spyder

xx = 0
n = 4294967295

while xx <= n:
    print("xx = ", xx, bin(xx))
    xx += 1

这导致以下追溯:

  File "<ipython-input-2-0c9d04ddbbc6>", line 1, in <module>
    runfile('C:/Users/Allen/Documents/Python Scripts/crunchy.py', wdir='C:/Users/Allen/Documents/Python Scripts')

  File "C:\Users\Allen\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile
    execfile(filename, namespace)

  File "C:\Users\Allen\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/Allen/Documents/Python Scripts/crunchy.py", line 11, in <module>
    print("xx = ", xx, bin(xx))

  File "C:\Users\Allen\Anaconda3\lib\site-packages\ipykernel\iostream.py", line 317, in write
    self._buffer.write(string)

ValueError: I/O operation on closed file

您似乎正在使用 ipython。

根据此页面:https://github.com/ipython/ipython/issues/9168

您可能 运行 遇到已知问题,将在下一个版本中修复。顺便说一句,当我在终端中 运行 时,该程序不会崩溃。

(这里是 Spyder 开发人员) 这个错误不是 Spyder 错误而是 ipykernel 错误。它已在 2016 年 8 月发布的 ipykernel 版本 4.4 中修复。

因此请务必在终端中通过 运行 此命令(即 cmd.exe

更新到最新的 ipykernel
conda update ipykernel