Python图形化界面调用Matlab后使用Pyinstaller打包

本文介绍了在Python环境下,如何调用Matlab脚本并使用Pyinstaller将其打包成exe。在调用过程中遇到错误,通过构造目录结构,编辑HOOK-MATLAB.PY文件,以及修改打包命令成功解决。最后,打包后的exe文件运行正常。

1. 错误出现情况

  • 使用 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, in <module>
  File "d:\programfiles\anaconda\envs\ek80python\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\matlab\__init__.py", line 24, in <module>
ImportError: No module named 'mlarray'
[13856] Failed to execute script test

2.解决方案

STEP1:构造目录结构

在要打包的路径下构建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=hooks

3. 测试效果

重新打包生成的文件可以完美运行。
在这里插入图片描述

TIP:

在这里插入图片描述运行过程中报了一个编码错误,原因是系统语言中英文设置问题,更改非Unicode程序中使用语言为中文即可
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值