- 使用 python调用matlab程序
- 环境使用anaconda搭建
- python版本:3.5
- matlab版本:matlab2018b
应导师要求,使用python调用matlab脚本,并生成exe文件(使用pyinstaller)
错误使用命令:
pyinstaller xxx.py
生成成功,但是运行时报错
报错的具体信息为:
Traceback (most recent call last): File "test.py", line 5, in2.解决方案 STEP1:构造目录结构File "d:programfilesanacondaenvsek80pythonlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 623, in exec_module exec(bytecode, module.__dict__) File "site-packagesmatlab__init__.py", line 24, in ImportError: No module named 'mlarray' [13856] Failed to execute script test
在要打包的路径下构建hooks文件夹,创建钩子函数。
- test.py # 准备打包的python文件 - hooks # 文件夹 - hook-matlab.py # hooks文件夹下的文件STEP2: 编辑HOOK-MATLAB.PY文件
from PyInstaller.utils.hooks import collect_all
datas, binaries, hiddenimports = collect_all('matlab')
STEP3:打包命令
在打包命令后加上:
--additional-hooks-dir=hooks
例如:
pyinstaller test.py --additional-hooks-dir=hooks3. 测试效果
重新打包生成的文件可以完美运行。
运行过程中报了一个编码错误,原因是系统语言中英文设置问题,更改非Unicode程序中使用语言为中文即可



