编辑:同时,我发现我的应用程序的另一部分正在泄漏文件描述符。它使孤立的UDP连接保持打开状态:-( bokeh.save()只是第一个打开“另一个”文件的函数,因此错误在那里变得明显。
但是,它与散景无关。
感谢您耐心等待@bigreddot。
我将投票删除该帖子。
在脚本中,我使用Bokeh多次更新绘图。
在第一次运行中,我使用bokeh.show(plot_name)
,在以后的运行中,我使用bokeh.save(plot_name)
在两种情况下,我都致电给我:
bokeh.output_file(os.path.join(dirname, '../plots/glideAngle_Elevator.html'))
一段时间后,我收到以下错误消息:
发生异常:OSError
打开的文件太多:...。
老实说,我不知道为什么会这样。写入
output_file
后是否需要关闭它?
除了提示之外,找不到任何文档
注意
通常,应在交互式会话开始时或在脚本顶部调用它。
https://docs.bokeh.org/en/latest/docs/reference/io.html#bokeh-io-output
任何人都可以解释,这意味着什么,以及如何避免该错误?
问候,
Felix
编辑:
同时,问题再次发生,我将其固定在文件_save_helper()
中的bokeh.io.saving.py
功能上。该行抛出异常
with io.open(filename, mode="w", encoding="utf-8") as f:
它正好说:
发生异常:OSError
[Errno 24]打开的文件太多:'/ home / felix / git / gym-jsbsim-eee / gym_jsbsim / wrappers /../ plots / glideAngle_Elevator.html'
文件“ /usr/local/miniconda/envs/machineLearning/lib/python3.6/site-packages/bokeh/io/saving.py”,第150行,在_save_helper中使用io.open(filename,mode =“ w”,encoding =“ utf-8”)as f:
文件“ /usr/local/miniconda/envs/machineLearning/lib/python3.6/site-packages/bokeh/io/saving.py”,第86行,保存_save_helper(obj,文件名,资源,标题,模板)
文件“ /home/felix/git/gym-jsbsim-eee/gym_jsbsim/wrappers/episodePlotterWrapper.py”,行160,在showGraph中
因此,
with io.open(filename...
构造可能存在问题吗?何时为分配有whith ...
构造的资源重新分配收集的垃圾?使用with io.open...
打开文件后是否需要关闭文件?
我对Python的使用时间还不太长,所以这里缺乏经验。
编辑:同时我发现,我的应用程序的另一部分正在泄漏文件描述符。它使孤立的UDP连接保持打开状态:-( bokeh.save()只是第一个到...
我不确定是什么会导致该错误消息,但这也不是output_file
的惯常用法(如上所述,它通常在脚本中被调用一次)。 [1]