1. 环境:
python版本: 3.7
matlab版本: 2020b
2. 在使用pyinstaller -F script.py打包为exe文件,期间log没有提示明显的错误信息。
但是在dist目录执行exe文件时,就提示ImportError: No module named ‘mlarray‘错误!
3. 解决方案:
参考上面文章,我选择最后的方法。
(1).先在打包文件script.py同目录新建一个目录hooks,在hooks目录新建python脚本文件hook-matlab.py。
(2).文件内容:
from PyInstaller.utils.hooks import collect_all
datas, binaries, hiddenimports = collect_all('matlab') #matlab是在site-packages目录里面的模块名称
(3).打包命令:pyinstaller -F script.py --additional-hooks-dir=hooks
注意:
如果site-packages里面的matlab模块是从别的电脑拷贝过来,或者整个python目录是拷贝过来的,打包的时候会提示找不到matlab模块。
解决的方法就是重新在本地安装matlab模块。
安装方法是在matlab安装目录Polyspace/R2020b/extern/engines/python中,
执行python setup.py install
就可以安装matlab的模块到python了。
再重新打包就正常了。