码迷,mamicode.com
首页 > 编程语言 > 详细

python打包exe

时间:2020-01-28 17:11:24      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:就是   问题   莫名其妙   src   版本   完成   英文   install   控制台   

前言

  嘿,各位小伙伴,晚上好呀,我相信各位小伙伴都是python的爱好者,可能我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们效率,少加班,多陪陪媳妇不好嘛,再不行,让代码替我们干着重复的工作,我们打游戏不好嘛,是吧,哈哈哈

 

  但是呢,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安装我们用的那些第三方包,是不是有点小麻烦,但是我们知道,PC是直接可以运行exe

 

  所以,从看了这个教程以后,这都将成为过去式,打成exe之后,分享即用

 

  ps:如果打包为exe的话,版本尽量选择python3.6+,32位版本,因为win64位系统向下兼容32位程序,但是如果不考虑32位系统的话无所谓,直接python64位版本直接打包就可以,只是只能在win64位系统上跑

 

开始打包

安装pyinstaller -> pip3 install pyinstaller

技术图片

pyinstaller打包机制

 

  我们写的python脚本是不能脱离python解释器单独运行的,所以在打包的时候,至少会将python解释器和脚本一起打包,同样,为了打包的exe能正常运行,会把我们所有安装的第三方包一并打包到exe

 

  即使我们的项目只使用的一个requests,但是可能我们还安装了其他n个包,但是他不管,因为包和包只有依赖关系的

 

  比如我们只装了一个requests,但是requests包会顺带装了一些其他依赖的小包,所以为了安全,只能将所有第三方包+python解释器一起打包

 

  有图有真相

技术图片

  蓝色表示是安装requests依赖的包,看到了吧

 

Pyinstaller打包exe

 

  这里呢,我就拿刚给同事写办公自动化脚本示例一下

 

  源码示例效果

技术图片

  我们来将这个.py的文件打包成一个exe,我们直接cmd切换到这个脚本的目录,执行 pyinstaller -F setup.py

技术图片

 

 

 

  ps:-F参数 表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,记住就行,固定命令

 

  执行完毕之后,会生成几个文件夹

 

技术图片

 

 

   

  在dist里面呢,就有了一个exe程序,这个就是可执行的exe程序

技术图片

 

 

 

 

  嗯,我把这个setup.exe拖到和setup.py平级的目录,我们来运行一下这个

技术图片

 

  这样,我们就完成了一个打包工作,如果别人需要,即使没有python环境,他依然可以运行

 

 

  我们再来打包一个带界面的,这里我用pyqt5写了一个最简单的框架,看一下打包成exe是否能运行成功

 

技术图片

 

 技术图片

  我们可以看到,后面有一个黑洞洞的窗口,这就有点尴尬了,所以,我们的打包命令也要变一下

 

  执行 pyinstaller -F -w setup.py 多加-w以后,就不会显示黑洞洞的控制台了,这里就不做演示啦

 

 

  但是我们打包的exe,我们的图标呀,实在是有点丑陋,默认的,没有一点自己的风格,那么,我们应该怎么改一下呢

 

  执行命令:pyinstaller -F -w -i wind.ico setup.py

技术图片

 

 

 

  默认打包图片

技术图片

  加上 -i 参数之后

技术图片

 

 

 

  ps:程序路径最好全部都是英文,否则肯能会出现莫名其妙的问题

  到此,我们能用到的pyton打包成exe命令都总结完了

 

总结命令

Pyinstaller -F setup.py 打包exe

Pyinstaller -F -w setup.py 不带控制台的打包

Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包

 

平常我们只需要着三个就好了,足够满足所有需求了

 

结束

到这之后呢,python打包成exe基本算是结束了,记得一定要把pip升级成最新版的pip在安装pyinstaller,要不然可能会出现莫名奇妙的问题

谢谢观看

 

 

 

 

 

 

python打包exe

标签:就是   问题   莫名其妙   src   版本   完成   英文   install   控制台   

原文地址:https://www.cnblogs.com/HeavyShield/p/12238313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!