【问题标题】:python print command causes I/O errorpython print命令导致I/O错误
【发布时间】:2017-12-22 18:33:44
【问题描述】:

我有一个 python 代码已经在多台计算机上运行了好几年。我最近安装了 python(相同版本)并在新计算机上上传了相同的代码。该代码将运行好几天,直到尝试执行简单的打印命令时突然出现错误。打印命令是打印到主控制台,而不是文件,例如“打印我到这里”类型的 QC 检查。我可以注释掉所有的打印命令,但我需要那些 QC 检查。

C:\X\halo1_rt_v6.5.py in halo_storeFile(halo1Config, product, spreftype,        dateTime, ending, height)
    164         fnout_recent =  halo1Config["LATEST"]+halo1Config["NAME"]+ "_"  +  product.upper()+"_"+dateTime+"-"+spreftype + ending
    165         fdest = dst + fnout_time
--> 166         print 'STORING: ',fdest, fnout_latest, fnout_recent
    167     else:
    168         fnout_time   =  halo1Config["NAME"] +"_" + product.upper()+ "-" + spreftype+"_"+dateTime+"_" +str(height) + '_m'+ ending


C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.7.4.3348.win-x86_64\lib\site-packages\ipykernel\iostream.pyc in write(self, string)
    315 
    316             is_child = (not self._is_master_process())
--> 317             self._buffer.write(string)
    318             if is_child:
    319                 # newlines imply flush in subprocesses

ValueError: I/O operation on closed file

我的 python 版本、Enthought Canopy 或 ipykernel 有问题吗?我尝试更新 ipykernel。代码所做的只是将简单的语句打印到控制台,所以我不知道为什么会遇到 I/O 错误——我没有写入任何文件,并且代码在 90% 的情况下都能正常工作!

感谢您的帮助

【问题讨论】:

  • 我假设您没有通过 Canopy 本身运行此脚本?我不确定我是否能看出这将是一个问题。
  • 无论问题是什么,我认为最好创建一个以相同方式运行的小脚本并从中进行测试,而不是等待问题出现的时间。我无法从您发布的内容中测试任何内容,但回溯最后部分的路径......我没有看到类似的东西。
  • 随机猜测可能不会导致任何结果,您是否在运行虚拟环境?
  • 是的,Canopy 1.7.4 Python 总是使用虚拟环境。 (Canopy 2.x 使用平面环境)。
  • 我正在通过 Canopy 本身运行此脚本(启动 Enthought Canopy,运行脚本)。会不会是工作路径问题?同时,我将尝试使用较小的脚本运行。

标签: python printing io enthought canopy


【解决方案1】:

您是否在 Canopy GUI 的 IPython 面板中运行代码?这是一个 Jupyter / IPython Qtconsole,它具有 2 进程(内核:前端)架构,比 1 进程架构更脆弱(例如,它需要通过 localhost 传达您的打印语句。

因此,如果这是一个长时间运行的程序,那么在简单的 ipython 终端中运行它会更加健壮(从带有 ipython 的 Canopy 命令提示符打开)。

【讨论】:

  • 我可以尝试在没有 Canopy 的单独终端中运行它;奇怪的是,直到现在我还没有遇到过与 Canopy 相关的这个问题。我会让你知道在 cmd 中单独运行它的结果或你建议的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
相关资源
最近更新 更多