目录
一、资料说明
二、步骤
第一步,安装pyinstaller(你可以通过pycharm或cmd安装)
第二步,在工作目录上打cmd,输入以下命令
第三步,dist查看打包成功的exe文件,并加入两个文件夹
第四步,在dist目录全选,右键添加压缩(完美版打包)
三、疑问和总结
①有简单打包方法吗?
②打包好后,我进入dist发现只有一个exe文件,不添加Platforms和imageformats文件夹和图片资源可以运行吗?
③按照四个步骤走完,能实现什么效果
④打包图片不显示怎么办
⑤第三方库找不到怎么办
⑥'NoneType' object has no attribute 'write'怎么办
7.打包闪退问题
8.批处理快速打包
9.打包报错:Miniconda version: Failed to extract ucrtbase.dll: failed to open target file! fopen:Permission denied
四、总结
本人原创资料,写于大三,改于大四,本人py迷,如说的不对,欢迎大家指正!
省略安装方法,pycharm/cmd方式安装,如何安装可参考网络资料
pyinstaller -F -w -i rocket.ico untitled.py --upx-dir D:python解释器펎px-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
温馨提示:以上做法需要设置好环境变量,因为在命令提示符(CMD)中执行某个命令时,系统会根据环境变量中的路径查找相应的可执行文件(.exe)
参考路径:
D:pythonLibsite-packagesPyQt5Qt5pluginsplatforms下的两个文件夹(这两个文件夹作用:imageformats保证正常显示图片,platforms保证打包发给别人能够顺利启动,如果不拷进去,可参考后面内容--用打包命令额外打包一些第三方库)
【小结】走到这步,你就可以将dist文件夹打包给你的好朋友用了。但是上图显然有太多dll文件,不太简洁,如果你想将单独的一个exe文件发给你的好友,请看第四步。
【注意】若没有下载好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方法压缩,方法就是上面的方法)
列个表:
1.因为你的电脑安装了py,系统会根据你设置好的环境变量找到你的第三方库PYQT5,因此你自用可以不粘帖Platforms文件夹进去。
2.这两个文件夹的位置参考
D:pythonLibsite-packagesPyQt5Qt5plugins
3.解释:将图片资源和imageformats文件夹、platforms文件夹移动到exe同级目录中(假如不把图片移进去,无法访问所有图片;不把imageformats移进去,无法访问ico文件;不把platforms文件夹移进去,别人打不开你的exe)
你将你的exe文件发给你的小伙伴,小伙伴没安装py也可以用,而且是一个单独的exe文件,移动到哪里都可以!
可以参考我大四时候写的,效果有用!
多加一句代码,红色的是我虚拟环境下的包的位置,如果你不想拷文件,可以换成如下打包命令:
pyinstaller -F -w -i pdf.ico --paths="F:pycharmGUI8venvLibsite-packages" --upx-dir F:python解释器펎px-4.1.0-win64 untitled.py
原因:py会输出信息,而打包时候没将控制台打包进去
三个方案:
方案一:最简单,打包代码去掉-w,让控制台和exe一同打开。
方案二:将Pyinstaller版本降低(我没试过,网友说的,大家可以试试)
方案三:将标准输出和标准错误流重定向到一个空文件或者其他地方(我也没试过,大家可以试试,本人经历有限)
最后还是带着控制台输出了,大四作(= =欢迎大家补充解决方案)
【描述】打包成main.exe,双击运行闪退
直接在该目录cmd,输入main.exe运行,命令行会直接输出报错信息
双击即可,一键打包!
原因:360等杀毒软件干扰
解决方案:关闭退出或者软件添加信任即可。(以下以360企业安全云为例,其他软件自行百度即可)



我花了不少钱找人反复测试写好的软件,写成本贴,求点个赞吧!
初创时间本人大三,一个小小的笔记,各位大佬轻喷!!~
到此这篇py文件打包成apk(py文件打包成dll)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!大四了,再补充一下:升级了系统WIN11后问题超级多,以前打包都是一次过的,emmm,现在又是打包有问题又是被当作病毒禁止掉,我醉了。。。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/20455.html