How do I properly install Matlab Engine using the anaconda package manager for Python?

390 次查看(过去 30 天)
At the moment, I'm running Python 3.5 and Matlab R2015a on a 64-bit Windows 10 laptop. I'm using Anaconda as my Python package manager and want to run some Matlab scripts from Python using . I've used the classic Anaconda command to install Matlab engine:
conda install matlab_engine
However, even after Matlab engine has supposedly been installed, I get an error message whenever I type in the following command to Python.
import matlab.engine
The error just reads "no module called matlab". I'm really unsure of what to do. Am I doing something blatantly incorrect or is there another way I can install Matlab engine.
Thank you for your help.

回答(5 个)

Eli127
Eli127 2018-9-13
Open Anaconda Prompt (make sure you have the correct python version):
cd matlabroot\extern\engines\python
python setup.py install
'matlabroot' is your MATLAB root directory. In my case it is 'C:\Program Files\MATLAB\R2018a'
  10 个评论
Trevor Vannoy
Trevor Vannoy 2020-10-20
编辑:Trevor Vannoy 2020-10-20
In addition to what MD. FAHIM SAHARIAR ALAM ABIR said about creating a conda environment with the correct version of python for what your version of MATLAB supports, I also needed to change some folder permissions for setup.py to work on Linux. In particular, I had to take ownership of the "build" folder in "matlabroot/extern/engines/python", as running with setup.py with sudo does not keep my conda environment.
In short, here's what I did:
conda create -n matlab python=3.7
conda activate matlab
cd <matlabroot>/extern/engines/python
mkdir build
sudo chmod 777 build
python setup.py install
Doing that, the matlabengine was installed in my conda env's site-packages.
This was based on the following stackoverflow answer.

请先登录,再进行评论。


Burak
Burak 2019-6-18
I think conda doesn't have a package named "matlab_engine".
I was able to run matlab functions within the python. I installed the module with a slight variation on Ubuntu 16.04:
cd matlabroot/extern/engines/python
python setup.py install --prefix "<anaconda installation directory>"
As a general advice, just make sure that matlab module is installed in a folder where your python can see it (i.e. sys.path contains the directory of installation).
  2 个评论
Elizabeth Huaroc
Elizabeth Huaroc 2021-2-4
Thank you! That is exactly the trick! I followed the instructions on the Mathworks website, but before
import matlab.engine
I just add the folder where the matlab module was installed to my sys.path.
Where is my matlab module install?
In the terminal, after
python setup.py install
the installation folder is mentioned. For me it was something like "...anaconda3/lib/python3.8/site-packages".

请先登录,再进行评论。


Ehsan Shahini
Ehsan Shahini 2021-5-20
In linux:
First activate your environment:
conda activate
Then simply install the engine:
cd /usr/local/MATLAB/R2020b/extern/engines/python
python setup.py install
This worked for me.

Steven Lewis
Steven Lewis 2024-6-26
I am using MATLAB R2024a and anaconda v24.1.2. I am trying to install matlab.engine on a specific anaconda environment, but when I naviagte to the setup.py file in the matlabroot directory tree I get the error:
C:\Users\steve\.conda\envs\3d_model_analysis\Lib\site-packages\setuptools\_distutils\cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!
********************************************************************************
Please avoid running ``setup.py`` directly.
Instead, use pypa/build, pypa/installer or other
standards-based tools.
See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
********************************************************************************
!!
self.initialize_options()
C:\Users\steve\.conda\envs\3d_model_analysis\Lib\site-packages\setuptools\_distutils\cmd.py:66: EasyInstallDeprecationWarning: easy_install command is deprecated.
!!
********************************************************************************
Please avoid running ``setup.py`` and ``easy_install``.
Instead, use pypa/build, pypa/installer or other
standards-based tools.
See https://github.com/pypa/setuptools/issues/917 for details.
********************************************************************************
!!
self.initialize_options()
TEST FAILED: C:Users\steve\.conda\pkgs\Lib\site-packages\ does NOT support .pth files
bad install directory or PYTHONPATH
You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from. The
installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:
C:Users\steve\.conda\pkgs\Lib\site-packages\
and your PYTHONPATH environment variable currently contains:
''
Here are some of your options for correcting the problem:
* You can choose a different installation directory, i.e., one that is
on PYTHONPATH or supports .pth files
* You can add the installation directory to the PYTHONPATH environment
variable. (It must then also be on PYTHONPATH whenever you run
Python and want to use the package(s) you are installing.)
* You can set up the installation directory to support ".pth" files by
using one of the approaches described here:
https://setuptools.pypa.io/en/latest/deprecated/easy_install.html#custom-installation-locations
Please make the appropriate changes for your system and try again.
C:\Users\steve\.conda\envs\3d_model_analysis\Lib\site-packages\setuptools\command\sdist.py:117: SetuptoolsDeprecationWarning: `build_py` command does not inherit from setuptools' `build_py`.
!!
********************************************************************************
Custom 'build_py' does not implement 'get_data_files_without_manifest'.
Please extend command classes from setuptools instead of distutils.
See https://peps.python.org/pep-0632/ for details.
********************************************************************************
!!
self._add_data_files(self._safe_data_files(build_py))
zip_safe flag not set; analyzing archive contents...
matlab.__pycache__.__init__.cpython-311: module references __file__
matlab.__pycache__.__init__.cpython-311: module references __path__
matlab.engine.__pycache__.__init__.cpython-311: module references __file__
(3d_model_analysis) C:\Program Files\MATLAB\R2024a\extern\engines\python>python setup.py install --prefix "C:/Users/steve/.conda/pkgs"
C:\Users\steve\.conda\envs\3d_model_analysis\Lib\site-packages\setuptools\_distutils\cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!
********************************************************************************
Please avoid running ``setup.py`` directly.
Instead, use pypa/build, pypa/installer or other
standards-based tools.
See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
********************************************************************************
!!
self.initialize_options()
C:\Users\steve\.conda\envs\3d_model_analysis\Lib\site-packages\setuptools\_distutils\cmd.py:66: EasyInstallDeprecationWarning: easy_install command is deprecated.
!!
********************************************************************************
Please avoid running ``setup.py`` and ``easy_install``.
Instead, use pypa/build, pypa/installer or other
standards-based tools.
See https://github.com/pypa/setuptools/issues/917 for details.
********************************************************************************
!!
self.initialize_options()
TEST FAILED: C:Users\steve\.conda\pkgs\Lib\site-packages\ does NOT support .pth files
bad install directory or PYTHONPATH
You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from. The
installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:
C:Users\steve\.conda\pkgs\Lib\site-packages\
and your PYTHONPATH environment variable currently contains:
''
Here are some of your options for correcting the problem:
* You can choose a different installation directory, i.e., one that is
on PYTHONPATH or supports .pth files
* You can add the installation directory to the PYTHONPATH environment
variable. (It must then also be on PYTHONPATH whenever you run
Python and want to use the package(s) you are installing.)
* You can set up the installation directory to support ".pth" files by
using one of the approaches described here:
https://setuptools.pypa.io/en/latest/deprecated/easy_install.html#custom-installation-locations
Please make the appropriate changes for your system and try again.
C:\Users\steve\.conda\envs\3d_model_analysis\Lib\site-packages\setuptools\command\sdist.py:117: SetuptoolsDeprecationWarning: `build_py` command does not inherit from setuptools' `build_py`.
!!
********************************************************************************
Custom 'build_py' does not implement 'get_data_files_without_manifest'.
Please extend command classes from setuptools instead of distutils.
See https://peps.python.org/pep-0632/ for details.
********************************************************************************
!!
self._add_data_files(self._safe_data_files(build_py))
zip_safe flag not set; analyzing archive contents...
matlab.__pycache__.__init__.cpython-311: module references __file__
matlab.__pycache__.__init__.cpython-311: module references __path__
matlab.engine.__pycache__.__init__.cpython-311: module references __file__

Alberto Bortoni
Alberto Bortoni 2022-12-20
This may be a workaround but it def works
To ensure that the right python via anaconda is accesed by matlab (and for that matter other programs)
open the anaconda prompt. activate any environment you desire (or stay in base). Then open matlab from within by typing "matlab" (no quotes)

类别

Help CenterFile Exchange 中查找有关 Call MATLAB from Python 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by