解决MATLAB MCR安装过程中的错误:'Could not initialize Python MATLAB Data Array' 和 'ImportError: libpython3.8.so.1.0 cannot open'
说明
您可以只读粗标题和我标记的文字。
在工作的过程中,需要将python调用MATLAB的工程封装到docker容器中,这时首先需要准备一个能够运行python以及调用MATLAB的环境的镜像容器。我找了一个已经安装好python的容器,然后就是安装mcr2021a,后面就是遇到的问题和解决方案啦。
容器中安装mcr2021a for linux过程
1.进入容器(前提是容器已经run起来了)
docker exec -it [你的容器名] /bin/bash
2.下载mcr2021a for linux(下载到容器)
MATLAB官网MCR下载链接
3.解压,(在容器中解压,记住解压的目录,等会可以删除释放空间)
unzip MATLAB_Runtime_R2021a_Update_8_glnxa64.zip
4、解压后,静默安装,因为容器一般不提供界面,所以需要静默安装
./install -mode silent -agreeToLicense yes
这个命令的执行,是在解压后的目录下,一般安装还需要切换到高级权限下,在此就不做强调了,毕竟都用上linux了,这些都是基本操作了。
到这里,应该安装的过程会自动完成。一直到出现success。
5、配置MCR环境
根据官网说明,需要手动加环境变量
修改~/.bashrc文件,末尾添加
export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Runtime/v910/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v910/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v910/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v910/extern/bin/glnxa64:$LD_LIBRARY_PATH
6、刷新环境变量
source ~/.bashrc
7、安装matlab库,这个库是用来调用matlab函数、数据结构等
pip install matlab
到这里可能并没有完。还要测试python调用matlab的环境。
测试的过程就是,写一段matlab代码,用matlab2021a生成python package。
再写一个python调用python package的代码。
至于怎么写怎么调用,请参考我前面的文章。
调用起来,就出问题了…
错误’ImportError:libpython3.8.so.1.0 cannot open’解决方案
这个问题吧,我明明安装了python3.8.10,都能正确执行,但是就是会出现这个错误。
sudo apt-get -y purge python3.8-dev
安装这个开发库,就可以正常了。
等等,还有其他问题…
错误’Could not initialize Python MATLAB Data Array’解决方案
Exception caught during initialization of Python interface. Details: Could not initialize Python MATLAB Data Array
在执行python测试程序的时候,出现了这个问题。
这个问题的还真的不好解决,百度和bing好像能提供的参考不太多,也没有有效的解决方案。
最后,终于还是在官网得到了答案。
官网问题描述
交换上面两个的位置!
嗯,看到这个提示修改,果然有效。
废话
解决这个问题的时候,我还走了很多的弯路。
我开始是在win10下的matlab2021a将matlab程序转为了python package。
win10下,使用python3.8.10和mcr2021a能够正常调用。
但是将转好的python package拷贝到ubuntu下测试就出现了这种莫名奇妙的问题。
以为是转出的python package不能跨平台,所以又花了几天时间,下载matlab2021a for linux,安装虚拟机测试,下载镜像等等…
结果是,win10下matlab2021a转成的python package 是可以在linux下使用的,跟matlab无关!
magnet:?xt=urn:btih:EB1C3A0864431D21A342F09CC75831879CB0E374&tr=http%3A%2F%2Fbt4.t-ru.org%2Fann%3Fmagnet&dn=Mathworks%20Matlab%20R2021a%20(9.10)%20Linux
希望能够帮助遇到问题的你
编辑:myhappyandy