1. 程式人生 > >Python和matlab混編時,遇到問題:ImportError: No module named matlab.engine"的解決方法

Python和matlab混編時,遇到問題:ImportError: No module named matlab.engine"的解決方法

前言:在做模型訓練的時候,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.完成收工!