记pyqt+QTdesigner 内嵌matlab engine GUI打包 过程

最近导师让用labview编软件,由于python的火热,想用python试一下
软件环境:
pycharm 2019 社区版
matlabR2016b
python3.5(和matlab engine 匹配)

首先尝试直接Pyinstaller 打包

出现如下错误
Failed to execute script pyi_rth_qt5

按照网上常见方法方法设置路径后依然不行
pyinstaller --paths C:/****/Python/Python35-32/Lib/site-packages/PyQt5/Qt/bin -F -w ****.py

尝试打包

a = 1
b = 2
print(str(a+b))
成功
所以应该是程序的问题

修改程序内部再尝试

记pyqt5遇到的坑ImportError: unable to find Qt5Core.dll on PATH
程序按照上面这个博客提到的修改

import sys,os
if hasattr(sys, 'frozen'):
    os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
from PyQt5.QtWidgets import  QApplication,QMainWindow,QWidget,QFileDialog
from PyQt5.QtGui import *
from adder import Ui_MainWindow
import matlab
import matlab.engine

中间的 if 是加的
命令行输入:
pyinstaller -F -w -i 1.ico sucess_p_m.py
结果:
: 在这里插入图片描述

加上path

pyinstaller --paths D:\professionalsoft\anaconda\envs\py3.5\Lib\site-packages\PyQt5\Qt\bin -F -w -i 1.ico sucess_p_m.py
结果:还是不行 和上面错误一样

改变pyqt版本

本来是5.13.0 变成5.12.2
对应的 pyqt_tools 也变一下
还是不行
再次降级
在这里插入图片描述
出现正常的错误了,感觉胜利就在眼前,继续百度。
在这里插入图片描述
按照网上说法手动在文件内

from PyQt5 import sip

又出现新的错误
在这里插入图片描述
不过我觉得不调用MATLAB 的程序到这里应该可以成功打包了

继续尝试解决(PS.早上搞到下午了

尝试了网上各路方法之后,包括打包matlab成python库(这个我没试成功,方法是下面这个链接,打包方法可以参考一下)
python调用matlab方法

根据错误提示尝试这个解决方法(其实是一个比较大众的解决方法,但是对题了)
pyinstaller打包python文件后,运行出现"Failed to execute script xxx.exe"错误的解决方式

先pyinstaller 打包一遍,再将生成的.spec 文件中的隐藏导入设置为刚才没找到的模块,如下:
hiddenimports=[‘mlarray’]
修改后直接在命令行中输入 如下命令 基于修改过的.spec 继续打包
pyinstaller sucess_p_m.spec
双击刚才的exe文件
work 了,如下,是我编的简单的计算两个sin相加的程序,QT designer设计界面,pyqt包设计程序逻辑,计算调用matlab函数,并最终生成exe。大半天终于搞好了…

在这里插入图片描述

总结(三个主要问题)

1.最前面的设置路径最后我在产生exe的时候也没用,可能是我在程序内部设置了路径,这个我没搞清楚,以后再说。
2.主要是在于pyqt5-tools版本的问题
3.在打包exe时,有的包没打到,需要隐藏导入。
谢谢收看

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值