c/c++语言开发共享pyqt5打包成exe可执行文件的方法

本文内容会引起杀毒软件的莫名兴奋,建议先安抚杀毒软件,让杀毒软件先休息一下再继续操作安装python3.6转exe会遇到很多问题,其中部分是由于python版本不合适引起的,如果可以,尽量用3.5或3

c/c++开发分享pyqt5打包成exe可执行文件的方法内容会引起杀毒软件的莫名兴奋,建议先安抚杀毒软件,让杀毒软件先休息一下再继续操作

安装python3.6

转exe会遇到很多问题,其中部分是由于python版本不合适引起的,如果可以,尽量用3.5或3.6版本。

在windows上安装

安装时勾选add to path选项添加到环境变量

打开终端查看版本:

  python -v  pip -v  

准备工作

安装包:

  pip isntall pyinstaller  pip install auto-py-to-exe  pip install pyqt5  

如果代码中有其他依赖包也要对应安装好,要是编译成功后,打开之后程序直接死掉,很可能就是依赖包没装好

创建python文件center.py

  # center.py  import sys  from pyqt5.qtwidgets import qwidget, qdesktopwidget, qapplication     class example(qwidget):            def __init__(self):          super().__init__()          self.initui()        def initui(self):                         self.resize(250, 150)          self.center()          self.setwindowtitle('center')              self.show()                #控制窗口显示在屏幕中心的方法          def center(self):          #获得窗口          qr = self.framegeometry()          #获得屏幕中心点          cp = qdesktopwidget().availablegeometry().center()          #显示到屏幕中心          qr.movecenter(cp)          self.move(qr.topleft())    if __name__ == '__main__':      app = qapplication(sys.argv)      ex = example()      sys.exit(app.exec_())    

运行python center.py可以看到在屏幕中心的窗口,说明代码没问题,这一步很有必要,要是代码跑不起来,编译也没有作用。

编译

不是交叉编译器,exe要在windows上运行,只能在windows上编译。

pyinstaller将python代码编译为exe可执行文件在windows上使用

python:3.6-3.9
pip install pyinstaller

通过可视化界面使用pyinstaller

python : 3.5-3.9
pip install auto-py-to-exe
auto-py-to-exe

启动auto-py-to-exe

  auto-py-to-exe

单文件

启动之后选择对应文件,先试试单文件,选择基于窗口

pyqt5打包成exe可执行文件的方法

对应的命令是:

  pyinstaller --noconfirm --onefile --windowed --icon "d:/01ubuntu/icon.ico"  "d:/01ubuntu/center.py"  

因为不基于控制台启动则需要依赖于bootloader,找不到bootloader就会报错:

pyqt5打包成exe可执行文件的方法

选择基于控制台,也就是启动的时候会弹出终端黑窗口

pyqt5打包成exe可执行文件的方法

对应生成的命令:

  pyinstaller --noconfirm --onefile --console --icon "d:/01ubuntu/icon.ico"  "d:/01ubuntu/center.py"  

运行成功,生成的exe文件在ouput文件下:

pyqt5打包成exe可执行文件的方法

双击center.exe会看到弹出一个黑框,接着pyqt界面就会出来,但是有点慢。

pyqt5打包成exe可执行文件的方法

编译成功,只是这个黑窗口有点难看

pyqt5打包成exe可执行文件的方法

单目录

pyqt5打包成exe可执行文件的方法

对应命令:

  pyinstaller --noconfirm --onedir --console --icon "d:/01ubuntu/icon.ico"  "d:/01ubuntu/center.py"  

生成的结果不再是单个exe文件,而是一个文件夹,里面包含了启动center.py需要的各种子文件

pyqt5打包成exe可执行文件的方法

里面依旧包含了center.exe可执行文件,但是可以发现,现在的exe笑了很多,因为其他部分变成了可见的文件,双击依旧可以打开,而且,这次的启动速度明显快了很多。

pyqt5打包成exe可执行文件的方法

完整项目

前面的测试是单个.py文件的的项目,但是实际项目中,一般都不会只是一个文件,而是由很多文件和文件夹,可以通过附加文件添加,这里我的整个工程都在myapp中,主程序是main.py被调用程序是ui_mainwin.py

pyqt5打包成exe可执行文件的方法

对应命令:

  pyinstaller --noconfirm --onedir --console --icon "d:/01ubuntu/myapp/icon.ico" --add-data "d:/01ubuntu/myapp/ui_mainwin.py;." --add-data "d:/01ubuntu/myapp/images;images/"  "d:/01ubuntu/myapp/main.py"  

解决找不到bootloader

在编译的时候,杀毒软件很开心的跟我报告他抓到了小偷,结果打开一看,前面的坑竟然是这个邀功的杀毒软件挖的。

pyqt5打包成exe可执行文件的方法

点击找回原文件进入他家,发现我要的东西全被杀毒软件锁在小房间

pyqt5打包成exe可执行文件的方法

勾选之后点击恢复所选解救大家,还好这些文件还没遭受酷刑

pyqt5打包成exe可执行文件的方法

送他们回到他们原本该去的地方

pyqt5打包成exe可执行文件的方法

todo

将编译结果转成可安装文件

总结

  •  二话不说,先关杀毒软件
  • 配好环境,先跑代码,这是编译的基础
  • 编译结果单文件:保密性好,但是慢
  • 编译结果多文件:比较快
  • 无控制台需要有pre-compiled bootloader
  • 其他文件可以通过附加文件添加

到此这篇关于pyqt5转为exe可执行文件的方法的文章就介绍到这了,更多相关pyqt5转为exe可执行文件 内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/595521.html

(0)
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐