windows10 pyqt5打包成exe踩坑历程

按照网上的教程安装好pyqt进行开发,这里不再赘述。到了打包这一环节,我使用的是pyinstaller。

pyinstaller打包会将很多无用的包添加到你的应用中,所以在打包之前最好新建一个环境,把开发好的工程在这个新环境中run一下,缺少什么模块再在这个新环境中安装什么模块,保证这个新环境只有这一个工程需要的包。并且,在你的.py中也不要导入用不到的包。

首先安装pyinstaller: 不知道这一步对于成功编译有没有影响,但是我在踩坑中查到有资料说是这样安装,好吧,就这样安装。

 pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip   

 在接下来,我们使用:

pyinstaller -F -w  main.py

 打包文件,等一段时间会产生一个dist文件,在这个文件夹下有一个main.exe的执行文件,如果一切正常,不出意外,你双击这个exe就能运行你的程序,但是,实际上90%的人都会出现各种问题。但是这中打包方式执行的时候不会提示错误信息,顶多会提示一个:

failed to excute script..... 类似的提示

 因此要通过以下语句打包:

pyinstaller -F -c  main.py

 同样会生成一个main.exe,这个时候我们在命令行中执行main.exe,就会提示报错信息,例如:

  File "main.py", line 2, in <module>
ModuleNotFoundError: No module named 'sip'

  File "main.py", line 2, in <module>
ModuleNotFoundError: No module named 'PyQt5.QtGui'

......

解决方法是,在你的py文件中导入缺失的库,没有的库使用pip安装上,比如:pip install sip。

import sip
from PyQt5 import QtGui

当我们把所有缺失的module都显示的在py文件中导入后,再执行这一句:

pyinstaller -F -c  main.py

在命令行中执行main.exe后可能回报这样的错:

This application failed to start because it could not find or load the Qt platform plugin "windows"
in "".

 我的解决方法是,在exe的同级目录下新建一个platforms的文件夹,把pyqt安装路径下的以下.dll文件复制进去:

 OK,不出意外,现在就可以执行了。使用:

pyinstaller -F -w  main.py

 重新打包,就可以双击执行。你也可以把这个包含exe的文件夹压缩,这样就可以把他分发给你的用户了。

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值