Python和matlab混編時,遇到問題:ImportError: No module named matlab.engine"的解決方法
阿新 • • 發佈:2018-12-11
前言:在做模型訓練的時候,import matlab.engine時,會出現bug:“ImportError: No module named matlab.engine”。針對這個問題,我將解決方法總結如下,便於學習交流~
注意事項:目前瞭解到,matlab支援的版本為2.7,3.3, 3.4 ,3.5 ,3.6不支援。(親測3.5.5有效)
方法步驟如下:
1.利用Anaconda安裝虛擬環境py35,操作如下:
conda create –name py35 python=3.5
2.建立完後,可通過如下方法進行啟用:
activate py35
3.(選項)可通過如下命名,檢視當前環境下python版本
python
4.建立完python3.5的環境後,接下來對matlab環境進行配置。
5.在matlab軟體安裝路徑下,找到檔案目錄“./extern/engines/python”,具體如下所示(紅色框選的檔案為原始存在的檔案):
6.win10系統下,win+r開啟cmd,將當前檔案路徑切換到5中的路徑下。
7.在6中的路徑下依次執行如下命令列:
python setup.py build --build-base="builddir" install python setup.py install --prefix="installdir" python setup.py build --build-base="builddir" install --prefix="installdir" python setup.py install --user
8.執行完成後,生成如上上圖中所示的資料夾。
9.測試程式碼:
#coding=utf-8
import matlab.engine
from numpy import *
if __name__ == '__main__':
eng = matlab.engine.start_matlab('MATLAB_R2016b')
A = matlab.double([[1,2],[5,6]])
print(type(A),A.size,A)
print(eng.eig(A))
eng.quit()
pass
結果如下:
10.完成收工!