我有一些Python程序,它由一个大循环组成,每个迭代调用Matlab并执行其他一些操作。
由于pymatbridge存在一些问题,我每10次迭代就会打开一个与Matlab的新连接。但现在,经过1000次迭代后,我收到错误Too many open files (src/epoll.cpp:50)
,程序崩溃为Abgebrochen (Speicherabzug geschrieben)
(意为Aborted (core dump written)
)。
我认为这是由于Matlab连接。
我的代码结构如下所示:
matlab = Matlab(startup_options='-useStartupFolderPref -nosplash -nodesktop',log=True)
matlab.start()
for todo in todo_list:
#DIRTY HACK to keep matlab from stopping: every 10 steps create new connection
if todo[0] % 10 == 0:
matlab.stop()
matlab = Matlab(startup_options='-useStartupFolderPref -nosplash -nodesktop',log=True)
matlab.start()
[call Matlab and do other stuff]
如何避免此错误?
备注:pymatbridge的问题在于,经过一些非常固定的调用后,它才会停止。见https://github.com/arokem/python-matlab-bridge/issues/255,其他人描述了这个问题。 如果有人知道解决方案,那也会有所帮助。
我正在使用