OSError: MATLAB Engine for Python 3.8 on MacBook Pro with M1 chip

After running the setup.py file I am trying to import the MATLAB engine from python and i get an OSError:
Please reinstall MATLAB Engine for Python or contact MathWorks Technical Support for assistance: dlopen(/Applications/MATLAB_R2020b.app/extern/engines/python/dist/matlab/engine/maci64/matlabengineforpython3_8.so, 2): no suitable image found. Did find:
/Applications/MATLAB_R2020b.app/extern/engines/python/dist/matlab/engine/maci64/matlabengineforpython3_8.so: mach-o, but wrong architecture
/Applications/MATLAB_R2020b.app/extern/engines/python/dist/matlab/engine/maci64/matlabengineforpython3_8.so: mach-o, but wrong architecture
I have run the usual command:
import matlab.engine
I have MATLAB 2020b latest version running smoothly via rosetta on the said machine. Aren't the MATLAB python engine libraries updated to handle the same.
Kindly help me circumvent this problem.

2 件のコメント

Peter Somhorst
Peter Somhorst 2021 年 10 月 21 日
編集済み: Peter Somhorst 2021 年 10 月 21 日
Hi Mehul,
How did you install Python? I found it doesn't work if you install it through pyenv. What worked for me (installing it, haven't tested anything yet):
  • install python 3.8 through homebrew (`arch -x86_64 /usr/local/bin/brew install python@3.8`)
  • install the matlab engine in this version of python (`/usr/local/opt/python@3.8/bin/python3.8 setup.py install`)
NB: Matlab 2021B supports Python 3.9 as well.
Hope this helps!
xenon zhang
xenon zhang 2021 年 11 月 1 日
hello, you can use
arch -x86_64 python3
instand of
python3
in terminal to run python as a x86 program (without install another version), then matlab engine can working well

サインインしてコメントする。

回答 (2 件)

alaa Ahmed
alaa Ahmed 2022 年 5 月 31 日

2 投票

If you are running matlab in Macbook pro with MATLAB 2020b .. Please run this command on matlab command window so that you set the python evironment directory
pyversion /usr/local/bin/python3
Then type pyenv, you will be able to find all PythonEnvironment feilds are filled :D
pyenv
ans =
PythonEnvironment with properties:
Version: "3.8"
Executable: "/usr/local/bin/python3"
Library: "/Library/Frameworks/Python.framework/Versions/3.8/lib/libpython3.8.dylib"
Home: "/Library/Frameworks/Python.framework/Versions/3.8"
Status: NotLoaded
ExecutionMode: OutOfProcess
Rashed Mohammed
Rashed Mohammed 2021 年 1 月 28 日

0 投票

Hi Mehul,
Since you are trying to load matlab engine (which is x86_64) from python3, It is necessary to run python3 also under rosetta2. I was able to reproduce your issue and running python3 under rosetta2 fixed the issue.
Hope this helps!

2 件のコメント

Hyung-Chun Lee
Hyung-Chun Lee 2021 年 8 月 30 日
I have tried it many times but I could not succeed.
xenon zhang
xenon zhang 2021 年 11 月 1 日
@Hyung-Chun Lee you can try
arch -x86_64 python3
to run your script, for example
arch -x86_64 python3 test.py
instand of
python3 test.py
it work for me

サインインしてコメントする。

カテゴリ

製品

リリース

R2020b

質問済み:

2021 年 1 月 25 日

回答済み:

2022 年 5 月 31 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by