汇总步骤:PyQT5+Pycharm将dll和exe一起打包成exe文件

目录

一、资料说明

二、步骤

第一步,安装pyinstaller(你可以通过pycharm或cmd安装)

第二步,在工作目录上打cmd,输入以下命令

第三步,dist查看打包成功的exe文件,并加入两个文件夹

第四步,在dist目录全选,右键添加压缩(完美版打包)

三、疑问和总结

①有简单打包方法吗?

②打包好后,我进入dist发现只有一个exe文件,不添加Platforms和imageformats文件夹和图片资源可以运行吗?

 ③按照四个步骤走完,能实现什么效果

④打包图片不显示怎么办

⑤第三方库找不到怎么办

四、总结


一、资料说明

本人原创资料,写于大三,改于大四,本人py迷,如说的不对,欢迎大家指正!

二、步骤

第一步,安装pyinstaller(你可以通过pycharm或cmd安装)

省略安装方法,pycharm/cmd方式安装,如何安装可参考网络资料

第二步,在工作目录上打cmd,输入以下命令

pyinstaller -F -w -i rocket.ico untitled.py --upx-dir D:\python解释器\upx\upx-4.1.0-win64

  • -F表示打包一个文件
  • -w表示软件不带命令行
  • -i表示icon图标地址,没有可以不打,建议打完整路径,不要像我上面那样
  • untitled.py是你的py文件
  • upx是压缩打包文件的工具路径(下载地址https://github.com/upx/upx/releases/tag/v4.1.0),当然upx也可以不下载,只是压缩文件大小罢了

【简略版打包命令】

pyinstaller -F -w untitled.py

第三步,dist查看打包成功的exe文件,并加入两个文件夹

参考路径:

D:\python\Lib\site-packages\PyQt5\Qt5\plugins\platforms下的两个文件夹(这两个文件夹作用:imageformats保证正常显示图片,platforms保证打包发给别人能够顺利启动)

【小结】走到这步,你就可以将dist文件夹打包给你的好朋友用了。但是上图显然有太多dll文件,不太简洁,如果你想将单独的一个exe文件发给你的好友,请看第四步。

第四步,在dist目录全选,右键添加压缩(完美版打包)

【注意】若没有下载好WINRAR,需要提前下载

【注意】此步骤建议"压缩文件名"和"解压后运行"填写一样的内容,即cmd打包生成的exe名字,例如jiemian.exe(我将打包生成的untitled.exe改名为jiemian.exe),上图中abc.exe是WINRAR打包的结果,jiemian.exe是py打包的结果。

我打包出来abc.exe,发给小伙伴,小伙伴可以移动到任何位置使用!别人就看不到你的dll文件和png文件啦!~

三、疑问和总结

①有简单打包方法吗?

有,打包成功后进入dist,有一个exe文件,你把dll文件、Platforms、png等依赖文件黏贴进去,全部文件压缩发给别人,别人也可用,不过别人会看到你的dll文件、png文件,不太简洁。

若您想打包成一个exe文件(不含任何dll文件,须使用winrar方法压缩,方法就是上面的方法)

②打包好后,我进入dist发现只有一个exe文件,不添加Platforms和imageformats文件夹和图片资源可以运行吗?

我怕说的乱,列个表:

 不添加Platforms不添加imageformats文件夹和图片资源
自己用可以用可以用,但是不显示图片资源
发给别人用直接用不了添加Platforms下可以用,不显示图片资源

1.因为你的电脑安装了py,系统会根据你设置好的环境变量找到你的第三方库PYQT5,因此你自用可以不粘帖Platforms文件夹进去。

2.这两个文件夹的位置参考


D:\python\Lib\site-packages\PyQt5\Qt5\plugins


3.解释:将图片资源imageformats文件夹、platforms文件夹移动到exe同级目录中(假如不把图片移进去,无法访问所有图片;不把imageformats移进去,无法访问ico文件;不把platforms文件夹移进去,别人打不开你的exe)

 ③按照四个步骤走完,能实现什么效果

你将你的exe文件发给你的小伙伴,小伙伴没安装py也可以用,而且是一个单独的exe文件,移动到哪里都可以!

④打包图片不显示怎么办

可以参考我大四时候写的解决方案,效果有用!

⑤第三方库找不到怎么办

多加一句代码,红色的是我虚拟环境下的包的位置:

pyinstaller  -F -w -i pdf.ico --paths="F:\pycharm\GUI8\venv\Lib\site-packages" --upx-dir F:\python解释器\upx\upx-4.1.0-win64  untitled.py

⑥'NoneType' object has no attribute 'write'怎么办

原因:py会输出信息,而打包时候没将控制台打包进去

三个方案:

方案一:最简单,打包代码去掉-w,让控制台和exe一同打开。

方案二:将Pyinstaller版本降低(我没试过,网友说的,大家可以试试)

方案三:将标准输出和标准错误流重定向到一个空文件或者其他地方(我也没试过,大家可以试试,本人经历有限)

最后还是带着控制台输出了,大四作(= =欢迎大家补充解决方案) 

四、总结

我花了不少钱找人反复测试写好的软件,写成本贴,求点个赞吧!

初创时间本人大三,一个小小的笔记,各位大佬轻喷!!~

大四了,再补充一下:升级了系统WIN11后问题超级多,以前打包都是一次过的,emmm,现在又是打包有问题又是被当作病毒禁止掉,我醉了。。。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值