本文讲述如何在python virtualenv中使用matlab engine。
1. 在ubuntu 18.04上安装matlab
可根据以下链接的指示进行安装(官方正版),其他版本请自行搜索下载。
Install Products Using Internet Connection
2. 创建virtual env
确保系统安装了python3-dev
$ sudo apt-get install python3-dev
安装python virtual env
$ sudo pip install virtualenv
创建virtual env
$ mkdir -p python3_ws/src
$ cd python3_ws
$ virtualenv py3venv --python=python3.6
初始化该virtual env
$ source ~/python3_ws/py3venv/bin/activate
也可将该命令行写进~/.bashrc文件,使得每次开启terminal后自动进行virtual env的初始化。进入virtual env后会有以下显示
3. 安装Matlab Engine
进入安装路径
$ cd /user/local/MATLAB/R2020a/extern/engines/python
本文安装的是2020 a版本(python 3.6),其中build-base的路径为上文所建立虚拟环境的bin文件夹,install路径为上述虚拟环境。
注意!一定要先进行初始化再进行engine的安装,否则系统默认build和install是基于Python2.7进行的,导致无法在python3环境中使用engine。
$ python setup.py install --prefix="/local/work/matlab20aPy36" build --build-base="/home/username/python3_ws/py3venv/bin" install --prefix="/home/username/python3_ws/py3venv/"
4. 调用matlab engine
在terminal中初始化虚拟环境后,进入python,然后进行matlab调用,若无问题则成功。
$ python
Python 3.6.9 (default, Jan 26 2021, 15:33:00) [GCC 8.4.0] on linux Type "help", "copyright", "credits" or "license" for more information.
>>> import matlab
>>> print(matlab.__file__)
/home/user/python3_ws/py3venv/lib/python3.6/site-packages/matlab/__init__.py
>>> import matlab.engine
>>>
参考:
Install MATLAB Engine API for Python
Install MATLAB Engine API for Python in Nondefault Locations
(注:未经同意不允许转载)