EngineError:传输停止。在激活MATLAB之后使用Python的MATLAB Engine

时间:2018-08-01 06:47:59

标签: python matlab matlab-engine

我根据this解决方案安装了MATLAB Engine,并且它也启动了,但是通过执行它,发生了以下错误:

Traceback (most recent call last):

  File "<ipython-input-1-7f0848dd34ed>", line 1, in <module>
runfile('/media/geodasie/dat/Dennis/Python/PythonProgram/CryoSat2_main_Test.py', wdir='/media/geodasie/dat/Dennis/Python/PythonProgram')

  File "/home/geodasie/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
execfile(filename, namespace)

  File "/home/geodasie/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

  File "/media/geodasie/dat/Dennis/Python/PythonProgram/CryoSat2_main_Test.py", line 288, in <module>
eng = matlab.engine.start_matlab()  # start Matlab

  File "/home/geodasie/anaconda3/lib/python3.6/site-packages/matlab/engine/__init__.py", line 115, in start_matlab
eng = future.result()

  File "/home/geodasie/anaconda3/lib/python3.6/site-packages/matlab/engine/futureresult.py", line 67, in result
return self.__future.result(timeout)

  File "/home/geodasie/anaconda3/lib/python3.6/site-packages/matlab/engine/matlabfuture.py", line 87, in result
handle = pythonengine.getMATLAB(self._future)

EngineError: Transport stopped.

发生错误的代码序列是这样的:

Path_year = fileName[19:23] + '/'
Path_month = fileName[23:25] + '/'
# read DBL file with the help of the Matlab function provided by ESA
eng = matlab.engine.start_matlab()  # start Matlab
DATA = eng.main_read(path_saveFilefromFTP + Path_year + Path_month + fileName)  # run matlab script
eng.quit()  # end Matlab

此代码已经在另一台PC上运行,但不幸的是,在此PC上发生了错误。

我多次安装了MATLAB Engine,但结果是相同的。根据调用的futureresult.py函数,timeout是返回结果之前等待的秒数。但是默认情况下,该功能会等待,直到结果可用为止。由于出现了错误,因此该函数似乎无法提供结果。 未来的结果解释如下:

  

每次的异步调用都会返回FutureResult的实例   函数调用:start_matlab,connect_matlab或MatlabEngine。    未来结果充当实际结果的占位符,因此未来    结果可以立即返回。实际结果放入    函数完成评估后的占位符。

但是程序已经通过调用引擎MATLAB引擎停止了,因此MATLAB和Python之间的连接应该有问题。

我在Ubuntu 16.04 LTS中使用Python 3.6.5和Anaconda 5.2并安装了MATLAB 2018a。

更新:现在我在另一台PC上对其进行了测试,并且发生了相同的错误。在我必须在此PC上激活MATLAB之后,似乎总是会发生这种情况。因此,我更改了标题。

有人知道如何解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

经过多次测试,唯一的解决方案是删除MATLAB,然后再次安装。也许有更好的解决方案,但是因为MATLAB需要激活才能激活,所以我想MATLAB许可证存在问题,因此MATLAB没有响应MATLAB引擎。