【问题标题】:Closed file error while printing a lot of content to the IPython console in Spyder将大量内容打印到 Spyder 中的 IPython 控制台时出现关闭文件错误
【发布时间】:2017-10-17 13:13:24
【问题描述】:

我的原始脚本比这个大,但我发现仅此一项就会导致完全相同的错误。第一篇在这里(我认为)。如果格式不对,请见谅。

for a in range(4000):
    for b in range(200):
        print('4000:' + str(a))
        print('201:' + str(b))

我将所有这些都视为错误。我是使用 Ipython 控制台的 Spyder。

文件“”,第 1 行,在 runfile('C:/Users/me/Documents/file.py', wdir='C:/Users/me/Documents')

运行文件中的文件“C:\Users\me\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py”,第 714 行 execfile(文件名,命名空间)

文件“C:\Users\me\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py”,第 89 行,在 execfile exec(编译(f.read(),文件名,'exec'),命名空间)

文件“C:/Users/me/Documents/file.py”,第 35 行,在 print('4000:' + str(a))

文件“C:\Users\me\Anaconda3\lib\site-packages\ipykernel\iostream.py”,第 317 行,写入 self._buffer.write(string)

ValueError: 对已关闭文件的 I/O 操作

【问题讨论】:

  • 这似乎是spyderexecfile 的问题,而不是您的实际代码。尝试在非 spyder 终端中运行它...
  • 实际上似乎是 IPython 中的一个已知错误。你有没有机会用sys.stdout 做任何黑魔法?您使用的是哪个版本的 Ipython?它可能已在最近的版本中得到修复,您可以尝试更新 Ipython...
  • 是的。使用命令提示符似乎有效。谢谢
  • 黑魔法?哈。不。如果这就是你的意思,没有改变任何东西。 IPython 4.2.0。但是常规的 python 控制台也出现了与 Spyder 类似的问题

标签: python range spyder


【解决方案1】:

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

所以请务必通过在终端中运行此命令来更新到最新的ipykernel(即cmd.exe

conda update ipykernel

注意:如果您也可以更新到最新的 Spyder 版本会更好,因为您仍在使用 2.3 版本,而我们最新的是 3.1.4。

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 2017-11-30
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2019-04-04
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多