由于需要跑大型MATLAB代码,今天尝试在无头模式服务器上安装MATLAB_engine,在安装MATLAB安装包和解决许可证上(第一步)试错了将近一天,解决这个问题后一马平川,后面的安装仅花费了10min,感觉真的搞心态,原来行百里者不只有半九十,还有半十。简单记录一下,damn!
1. 安装MATLAB iso文件
首先需要下载MATLAB安装包,注意是离线版本(iso文件,大约10G),而不是在线下载版本(官网上下载到的zip,大约200M)。我的服务器是Ubuntu 18.04版本,所以选择下载R2023a,最好根据服务器版本下载对应MATLAB linux版本。
分享一下MATLAB R2023a Linux iso下载资源,将其中的rar文件在服务器上使用unrar进行解压就可得到完整版的iso文件:
通过网盘分享的文件:UPDATE3 LIN 链接: https://pan.baidu.com/s/1ZF-5tJOrBivq8jiN1MQ5Eg?pwd=pcr8 提取码: pcr8 --来自百度网盘超级会员v6的分享接着使用下面指令解压完整版的iso文件到指定文件夹:
bsdtar -xf r2023a_Update_3_Linux.iso -C ~/matlab_iso 或者 7z x -o/mnt/zzf_nas/A_xff/MATLAB_installer/matlab_iso \ /mnt/zzf_nas/A_xff/MATLAB_installer/UPDATE/R2023a_Update_3_Linux/R2023a_Update_3_Linux/R2023a_Update_3_Linux.iso2. 设置installer_input.txt文件里面的参数
由于直接使用解压iso得到的文件夹中的install安装会产生UI界面跟你交互,但是由于服务器是无头模式的,所以会启动失败。这时需要修改installer_input.txt文件里面的参数,具体参照下面网址操作:https://zhuanlan.zhihu.com/p/53054105,这一步搞定许可证文件和安装秘钥是最耗时的,而且我们学校有软件正版化,所以可以直接从官网上搞到,其他途径我也不知道了。
配置好intaller_input.txt文件后,使用下面指令进行安装:
./install -inputFile ./installer_input.txt3. 验证MATLAB安装是否成功
使用下面代码启动MATLAB,如果能启动,则安装成功:
cd ~/matlab/bin ./matlab4. 安装MATLAB_engine
我选择将MATLAB_engine安装在特定的环境,首先使用conda创建环境,然后使用conda activate激活环境,然后使用下面代码安装MATLAB_engine:
# 服务器安装matlab.engine cd ~/matlab/extern/engines/python python setup.py install --prefix=$CONDA_PREFIX # 安装到conda环境5. 验证MATLAB_engine是否安装成功
激活环境,终端启动Python,运行下面代码,若成功,则MATLAB_engine安装成功:
import matlab.engine eng = matlab.engine.start_matlab() print(eng.sqrt(matlab.double([16]))) # 正确传递 double 类型 eng.quit()完毕!
花了我一天时间,服了,damn!!!