To start the MATLAB® engine within a Python® session,
you first must install the engine API as a Python package. MATLAB provides
a standard Python setup.py
file for building
and installing the engine using the distutils
module.
You can use the same setup.py
commands to build
and install the engine on Windows®, Mac, or Linux® systems.
Each MATLAB release has a Python
setup.py
package. When you use the package, it runs the specified
MATLAB version. To switch between MATLAB versions, you need to switch between the Python packages. For more information, see Install Supported Python Implementation.
Before you install, verify your Python and MATLAB configurations.
Check that your system has a supported version of Python and MATLAB R2014b or later. For more information, see Versions of Python Supported by MATLAB Products by Release.
To check that Python is installed on your system, run Python at the operating system prompt.
Add the folder that contains the Python interpreter to your path, if it is not already there.
Find the path to the MATLAB folder. Start MATLAB and type matlabroot
in the command
window. Copy the path returned by matlabroot
.
To install the engine API, choose one of the following. You must call this
python
install command in the specified folder.
At a Windows operating system prompt (you might need administrator privileges to execute these commands) —
cd "matlabroot\extern\engines\python" python setup.py install
At a macOS or Linux operating system prompt (you might need administrator privileges to execute these commands) —
cd "matlabroot/extern/engines/python" python setup.py install
At the MATLAB command prompt —
cd (fullfile(matlabroot,'extern','engines','python')) system('python setup.py install')
Use one of the nondefault options described in Install MATLAB Engine API for Python in Nondefault Locations.
Start Python, import the module, and start the MATLAB engine:
import matlab.engine eng = matlab.engine.start_matlab()
You can specify a MATLAB version to run from a Python script by installing the MATLAB Python packages to a version-specific locations. For example, suppose that you want to call either MATLAB R2019a or R2019b from a Python version 3.6 script.
From the Windows system prompt, install the R2019a package in a subfolder named
matlab19aPy36
:
cd "c:\Program Files\MATLAB\R2019a\extern\engines\python" python setup.py install --prefix="c:\work\matlab19aPy36"
Install the R2019b package in a matlab19bPy36
subfolder:
cd "c:\Program Files\MATLAB\R2019b\extern\engines\python" python setup.py install --prefix="c:\work\matlab19bPy36"
From a Linux system prompt:
cd "/usr/local/MATLAB/R2019a/bin/matlab/extern/engines/python" python setup.py install --prefix="/local/work/matlab19aPy36" cd "/usr/local/MATLAB/R2019b/bin/matlab/extern/engines/python" python setup.py install --prefix="/local/work/matlab19bPy36"
From a Mac Terminal:
cd "/Applications/MATLAB_R2019a.app/extern/engines/python" python setup.py install --prefix="/local/work/matlab19aPy36" cd "/Applications/MATLAB_R2019b.app/extern/engines/python" python setup.py install --prefix="/local/work/matlab19bPy36"
To start a specific version of the MATLAB engine, set the PYTHONPATH
environment variable to
the location of the package. This code assumes you used the setup shown in the
previous section. To set PYTHONPATH
on Windows to call
MATLAB R2019b, type:
sys.path.append("c:\work\matlab19bPy36")
On Linux or Mac:
sys.path.append("/local/work/matlab19bPy36")
To check which version of MATLAB was imported, in Python type:
import matlab print(matlab.__file__)
Make sure that your MATLAB release supports your Python version. See Versions of Python Supported by MATLAB Products by Release.
You must run the Python install command from the specified MATLAB folder. See Install the Engine API.
python setup.py install
Make sure that you have administrator privileges to execute the install command from the operating system prompt. On Windows, open the command prompt with the Run as administrator option.
The installer installs the engine in the default Python folder. To use non-default location, see Install MATLAB Engine API for Python in Nondefault Locations.
If you installed the package in a non-default folder, make sure to set the
PYTHONPATH
environment variable. For example, suppose
that you used this installation command:
python setup.py install --prefix=" matlab19bPy36"
In Python, update PYTHONPATH
with this
command:
sys.path.append("matlab19bPy36")