使用pyinstall将python+qt的py文件打包为exe


前言

将python程序转为exe有三种方法,py2exe、cx_freeze和pyinstaller。其中py2exe打包的程序只能在同系统(win10打包的程序不能在xp上跑)的电脑上运行,而且需要dll依赖;cx_freeze只能打包启动模块需要拷msvcr100.dll,文件路径不能为中文;pyinstaller是目前用的最广泛的了,遇见问题一般也都能搜到解决。

一、pyinstall安装

pip install pyinstall

二、打包步骤

1.直接生成exe(最常见的方法,但qt程序可能会出现问题)

在py文件所在路径用python环境执行如下命令(xxx.py为你的py文件名,-w是只要窗体,不要控制台)

pyinstaller -w xxx.py

2.使用moviepy包可能出现的问题

2.1.问题

我使用如下方式引入包:

from moviepy import VideoFileClip

报错信息为

module 'moviepy.audio.fx.all' has no attribute 'audio_fadein

2.2.解决方法

引入该包的方式有问题,参考moviepy针对该问题的讨论改变引入包的方法即可

from moviepy.video.io.VideoFileClip import VideoFileClip

3.打包过程可能出现的问题

3.1.问题

直接生成可能会出现如下问题

With the default recursion limit (1000), the recursion error occurs at about
115 nested imported, with limit 2000 at about 240, with limit 5000 at about
660`

3.2.解决方法

按报错的提示步骤写,将如下代码放入xxx.spec的开头

import sys ;
sys.setrecursionlimit(sys.getrecursionlimit() * 5)

然后用如下方式打包

pyinstall -w xxx.spec

生成的dist文件夹里面就是你要的程序。

最后

我生成的文件有1个g大小,只引入了opencv、qt和moviepy,但是需要的各种依赖包太多了。成也萧何,败也萧何,各个独立包在写程序的时候特别好用,信手沾来;生成exe时,这些就是累赘了。在未出现更简洁的引入方式下,看来python在做exe这块暂时只能做做简单的,黑夜漫漫啊!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值