1.环境配置:
python: 3.7
matlab: 2020b
2.问题描述:
python开发的软件,其中需要调用matlab运行.m文件,前期开发已经安装了matlab的python支持模块,在IDE或者命令行直接执行脚本都是运行正常的。
由于开发电脑无法执行pyinstaller进行打包,换了一台电脑进行打包,打包完后在打包电脑运行exe程序是正常的,但是把exe文件拷到开发电脑运行,就会报错,如下:
3.解决:
从错误信息中首先找到出错的文件:\Lib\site-packages\matlab\engine\__init__.py
打开查看,发现会从_arch.txt文件中读取matlab的目录。
_arch.txt内容:
win64
D:\Program Files\Polyspace\R2020b\extern\engines\python\..\..\..\bin\win64
D:\Program Files\Polyspace\R2020b\extern\engines\python\dist\matlab\engine\win64
如果运行exe文件的电脑中matlab安装路径和打包电脑的路径不一致,则无法找到matlab运行环境,就会报上面的错误。
解决方法是保证运行环境的matlab安装路径和打包时的路径是一致的。
我是直接将matlab安装目录拷贝一份,放到和打包电脑一致的目录,再执行exe文件,就不会报错了。