我根据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之后,似乎总是会发生这种情况。因此,我更改了标题。
有人知道如何解决这个问题吗?
谢谢!
答案 0 :(得分:1)
经过多次测试,唯一的解决方案是删除MATLAB,然后再次安装。也许有更好的解决方案,但是因为MATLAB需要激活才能激活,所以我想MATLAB许可证存在问题,因此MATLAB没有响应MATLAB引擎。