Fail to start matlab engine in python 2022b
Show older comments
I use MacBook Pro M1 chip with macOS13 and Python version is 3.9.13.
I installed the Matlab R2022b and followed the document to install engine API via pip with code :
python -m pip install matlabengine
However, when I call matlab engine, it is failed with the output
raise RuntimeError("Could not find directory: {0}".format(engine_dir))
RuntimeError: Could not find directory: /Applications/MATLAB_R2022b.app/extern/engines/python/dist/matlab/engine/maca64
I find the directory that I can only find maci64.
May I know how could I start matlab.engine in Python?
Answers (7)
Jonathan Lilly
on 30 Oct 2022
1 vote
I have the same issue. Perhaps an M1 chip issue?
Charles King
on 1 Dec 2022
1 vote
I think it is a M1 chip issue because I have the following directory: /Applications/MATLAB_R2022b.app/extern/engines/python/dist/matlab/engine/maci64
and
/Applications/MATLAB_R2022b.app/extern/engines/python/dist/matlab/engine/maca64
is what the script is looking for.
Kannan
on 28 Sep 2022
Could you check the default install location of MATLAB? This can be done by going into the MATLAB Command Window and calling :
matlabroot
By default, you will find MATLAB installed at the following location
/Applications/MATLAB_R2022b.app
When MATLAB is not installed in the default location, the bin/architecture directory within the MATLAB root directory must be added to an environment variable. The path can be added to the environment variable within the shell startup configuration file:
# in .bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<matlabroot>/bin/glnxa64
Could you try these steps to see if the error still persists?
6 Comments
Jiaxin Peng
on 28 Sep 2022
Brian Ross
on 1 Dec 2022
Edited: Brian Ross
on 1 Dec 2022
I too have MATLAB installed in the default location on my M1 machine. The only glnxa64 directory in the <matlabroot> directory is at /Applications/MATLAB_R2022b.app/help/includes/product/arch/glnxa64. I do not have a maca64 directory anywhere.
I take this to mean that there currently isn't any support in the matlabengine package for the Arm architecture.
Prabhjot Billing
on 1 Jan 2023
I have the same isse on M1. It seems matlabengine is not supported on M1/ARM?
Jiaxin Peng
on 1 Jan 2023
Jiaxin Peng
on 1 Jan 2023
Edited: Jiaxin Peng
on 1 Jan 2023
Loc
on 7 Jun 2023
I met exact issue as you. How could you overcome it?
Hajar
on 9 Jan 2023
My MATLAB runtime root is at /usr/local/MATLAB_Runtime/R2022b on a GUI-less server Ubuntu 20.04 installation, so I checked
echo $LD_LIBRARY_PATH
And got nothing (it's not set) - am I required to install something else before R2022b to get this to work?
Then, I set the variable:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/MATLAB_Runtime/R2022b/glnxa64
Still got the following error with pip install:
RuntimeError: MATLAB R2022b installation not found. Install to default location, or add <matlabroot>/bin/glnxa64 to LD_LIBRARY_PATH, where <matlabroot> is the root of a MATLAB R2022b installation.
Gustavo Patow
on 24 Mar 2023
0 votes
Hi,
I am having more or les sthe same problem with 2023a version. When I try:
python -m pip install .
in the correct folder, I get the error:
error: MATLAB installation in /Applications/MATLAB_R2023a.app/extern/engines/python/../../../bin is maci64, but Python interpreter is maca64. Reinstall MATLAB or use a different Python interpreter.
And when I do:
python -m pip install matlabengine
I get
RuntimeError: MATLAB R2022b installation not found. Install to default location, or add <matlabroot>/bin/maca64 to DYLD_LIBRARY_PATH, where <matlabroot> is the root of a MATLAB R2022b installation.
which shouldn't be because I am using 2023a, so no 2022b installation...
Any idea of how to solve this weird problem?
cheers
gus.-
4 Comments
Keyang Zhang
on 24 Mar 2023
Edited: Keyang Zhang
on 24 Mar 2023
Long story short, "i" in "maci64" means "Intel", and the second "a" in "maca64" means "arm".
Explanations to the problem:
- First, for now, I believe matlabengine only supports R2022b at this moment. Maybe it is too soon to acquire a R2023a version. So I recommend still using R2022b, or you can wait till matlabengine supports R2023a, but who knows when it will...
- Second, why we getting this error? Because even if you install a macOS version, it is actually still an Intel version translated by Rosetta 2 with all Apple Sillicon (M1/M2) Macs. You need to install the ACTUAL "Native Apple Sillicon" version of MATLAB, which is still in beta, and this is the version we want.
- Lastly, the bad news. According to the webpage (https://www.mathworks.com/support/apple-silicon-r2022b-beta.html), native apple sillicon version of R2022b does not support MATLAB Engine API for Python. So even if we installed a native apple sillicon version of R2022b, we cannot use matlabengine.
Solutions?
- We can install a x86_64 based Python Interpreter, not an arm64 version, so it will not complain about Python Interpreter incompatible with MATLAB, and using the x86_64 version when installing matlabengine might solve the issue.
Gustavo Patow
on 24 Mar 2023
Thanks!!! This solved the issue!!! I installed 2022b, conda x86_64, and everything worked as charm!!!
Thanks!!!!
Jyothi Karri
on 19 Apr 2023
Hi Gustav,
could you provide more details on which command you used to install the matlab engine using conda?
Gustavo Patow
on 19 Apr 2023
The problem was solved by getting back to Matlab 2022b. Thanks anyway!
Thuong
on 6 Nov 2023
0 votes
I am having matlab 2023b, and have exactly problem, anyone solve it for macbook m1, and matlab 2023b?
1 Comment
Jiaxin Peng
on 8 Nov 2023
Carlos Rondon
on 15 Jan 2024
0 votes
Hi, I had the same problem. The issue is not related to matlab but to Anaconda's installation. In my case, I didn't have the latest version which is now compatible with Apple's M processors. Uninstalling conda and updating to the latest version solved all the issues.
Good Luck!
Categories
Find more on Call MATLAB from Python in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!