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.完成收工!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章