"No module named 'matlab.engine'; 'matlab' is not a package"

312 visualizaciones (últimos 30 días)
Jeroen Vancraen
Jeroen Vancraen el 23 de Oct. de 2017
Editada: Tongyao el 10 de Jul. de 2024
Hi everyone,
I'm trying to set up a connection between my python and matlab scripts. However i'm having some difficulties with the matlab module for python. I'm using a windows 10 computer and followed these instructions to install the python API for matlab: https://www.mathworks.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html
I keep getting this error: "No module named 'matlab.engine'; 'matlab' is not a package"
The matlab module was succesfully installed using the latest version of pip.
I searched the internet but no given solution could help me. Any ideas?
Greetings,
Jeroen
  1 comentario
pengze zhu
pengze zhu el 29 de Mayo de 2020
Hi,
I'm using R2017b and Python3.5.I have the same problem too.

Iniciar sesión para comentar.

Respuesta aceptada

Grace Kepler
Grace Kepler el 18 de Abr. de 2024
The first part of the error message ("No module named 'matlab.engine'") indicates an issue with importing matlab.engine. The second part of the error message ("'matlab' is not a package") generally indicates that you have a Python file named "matlab.py" on your Python path. To resolve this error, rename your file or move it to a location that is not on the Python path.
For other issues with importing matlab.engine see these links:

Más respuestas (13)

Stephan
Stephan el 15 de En. de 2018
Hi,
at last I was able to solve the problem for my case. After I have checked several times that the installation was successful: i.e. Matlab appears in the "Site packages" in the Python installation:
In Idle-> under "File"-> "Path Browser" Check whether the directory containing the MATLAB package is indeed on this path and verify that "MATLAB: Package" shows up when you expand that directory.
After this was the case, I found that my test file had the name "matlab.py". Since the import command of Python first searches for a corresponding py file and then after packages, I was able to solve the problem by renaming the file. Now it works perfectly.
This also explains why it worked on the command line with the direct input of the corresponding commands but did not work out of a development environment when I used my file called matlab.py.
  2 comentarios
Ankit Jaiswal
Ankit Jaiswal el 13 de Feb. de 2020
This reply is very tough to understand. Not sure where you are talking about idle etc. Can you please explain it more clearly. Thanks.
Milena Mori
Milena Mori el 23 de En. de 2021
I had also named my file 'matlab.py' and after changing it, it finally worked! Thank you so much!

Iniciar sesión para comentar.


Deepak Dhillon
Deepak Dhillon el 11 de Mzo. de 2020
I also face the same problem. I have MATLAB 2019b installed, anaconda installed, and spyder installed. I guess there could be some path issues, but could not spot it exactly. Kindly help.
  5 comentarios
Rubem Pacelli
Rubem Pacelli el 16 de Dic. de 2021
Editada: Rubem Pacelli el 16 de Dic. de 2021
I could replicate it on Linux too. First, on the terminal, type
pip list | grep matlab
You should not see anything... You must to go to
[matlab_root_directory]/extern/engines/python
where [matlab_root_directory] is your installation directory. Then you simply type
sudo python setup.py install
Now, run again
pip list | grep matlab
You should see that there is a package whose name is
matlabengineforpython R2021a
where R2021a shall vary depending on your matlab version.

Iniciar sesión para comentar.


Florian Ruther
Florian Ruther el 5 de Mayo de 2020
I just want to add what solved my problem.
I had to install the matlab engine with an admin account. Therefore the necessary files were put in the AppData\Local\Programs\Python\Python36 - folder of the admin account. After I copied everything from there to the corresponding folder of my user account it worked.
  2 comentarios
Mohd Toaha Umar
Mohd Toaha Umar el 12 de Ag. de 2020
Thank you, Florian. It worked for me
Metehan Bolat
Metehan Bolat el 28 de Oct. de 2020
I could not understand where you copied the file from where.

Iniciar sesión para comentar.


Vijaykumar Kudtalkar
Vijaykumar Kudtalkar el 14 de Ag. de 2021
Just found a simple way to solve this problem
run command as below in Matlab command prompt
cd (fullfile(matlabroot,'extern','engines','python'))
system('python setup.py install')
if it shows as below
running install
running build
running build_py
error: You do not have write permission in build\lib\matlab\engine
ans =
1
the go to installpath\R2021a\bin and provide write permission to the folder path including sub directories and then run the command in python command prompt
import matlab.engine
It worked for me.
  1 comentario
Deepika
Deepika el 8 de Oct. de 2021
Can u plz tell me how to give write permission becoz I m facing dis issue

Iniciar sesión para comentar.


Steven Lord
Steven Lord el 23 de Oct. de 2017
Which release are you using? Is it older than release R2014b? Note that the page you referenced states, in part: "Your system has a supported version of Python and MATLAB R2014b or later."

Jeroen Vancraen
Jeroen Vancraen el 23 de Oct. de 2017
I'm using R2017b student edition, and Python 3.5. These versions should be compatible no?
Greetings

diadochos
diadochos el 14 de Dic. de 2017
You could check if you have been successful installing the module. i.e. go to the directory that's explained in the URL you pasted: https://www.mathworks.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html
and run "python setup.py install".
In my case, with MATLAB R2015b release, I got the following error message:
OSError: MATLAB Engine for Python supports Python version 2.7, 3.3 and 3.4, but your version of Python is 3.6
Since you may have missed the message, you could try to install it again.

Stephan
Stephan el 26 de Dic. de 2017
Editada: Stephan el 27 de Dic. de 2017
Hi,
i have the same problem using Windows 10, Matlab 2017a and Python 3.5 (same using 2.7 - then used 3.5). What can i do to solve this?
2017-12-27 Update: When starting Python directly in the command window, it is working fine with the "isprime(37)" example from Mathworks Documentation Site.
But it doesnt work when calling a .py-File. Who can help?

Raghu Ram Theerthala
Raghu Ram Theerthala el 22 de Nov. de 2019
May be the error is trying to install in conda environment. Check it. if that's the case, deactivate conda and run setup.py install command again. This time it should run.
  2 comentarios
sun mengxin
sun mengxin el 26 de Nov. de 2019
this worked for me, thanks
Vidya Kurada
Vidya Kurada el 3 de Feb. de 2021
how to do this.Any steps?

Iniciar sesión para comentar.


Eric Aw
Eric Aw el 15 de Sept. de 2021
I have literally did everything suggested by in this page. But it is still not working for me .
I have type :
cd (fullfile(matlabroot,'extern','engines','python'))
system('python setup.py install')
in MATLAB, in cmd, everything installed perfectly . Even try this too :
python setup.py build --build-base=$(mktemp) install
But I still get the error of no module named 'matlab.engine'
Is there still any other suggestions?
  3 comentarios
Eric Aw
Eric Aw el 15 de Sept. de 2021
@Ankit Jaiswal Thank you very much !! It finally worked !! Seriously they really should include this step in the guide !
Ankit Jaiswal
Ankit Jaiswal el 15 de Sept. de 2021
That's very nice to hear 😊😊😊

Iniciar sesión para comentar.


Shuaiwen Huang
Shuaiwen Huang el 27 de Abr. de 2022
I tried the methods above and in Ubuntu it can find my package, but I dont know why it doesn't work in Spyder, I've changed tha path too, do anyone have any ideas please?

Maria Bardales Velasquez
Maria Bardales Velasquez el 22 de Mayo de 2022
Yo tenía el mismo problema por 3 días, nada funcionaba. Pero probé cambiar de versión de python en un nuevo ambiente de anaconda.
Uso matlab 2020a y ambiente de anaconda python versión 3.6.13

Tongyao
Tongyao el 10 de Jul. de 2024
Editada: Tongyao el 10 de Jul. de 2024
I found multiple MATLAB documentatons to install matlabengine.
----
This one which runs `python install setup.py` does not work for me. Probably because because installing with setup.py is now discouraged.
----
The second MATLAB instruction worked:
python -m pip install matlabengine
(or simply `pip install matlabengine` if you are sure the version of python pip is installing into)
---
I probably followed the first one at some point and I do have matlabengine as a python package but it cannot be imported
$ pip list | grep matlab
```
matlab 0.1
matlabengine 24.1
```
I have to uninstall the previous matlabengine package
pip uninstall matlabengine
and then run the second method
pip install matlabengine
Now in python, I can successfully import matlab.engine

Categorías

Más información sobre Call MATLAB from Python en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by