本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

以下文章来源于Python爬虫与数据挖掘 ,作者Python进阶者

前言

也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇(如果有)。再不行,让代码替我们干着重复的工作,我们有节省出来的时间打游戏不好嘛,是吧,哈哈哈。

但是呢,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安装我们用的那些第三方包,是不是有点小麻烦?但是我们都知道,PC是可以直接运行exe文件的,这就为我们提供了一个便捷的方式。所以,从看了这个教程以后,这都将成为过去式,打成exe之后,分享即可用。

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

安装pyinstaller

首先安装pyinstaller,使用安装命令:pip3 install pyinstaller,如下图所示。

pyinstaller打包机制

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

即使我们的项目只使用的一个requests包,但是可能我们还安装了其他n个包,但是他不管,因为包和包只有依赖关系的。比如我们只装了一个requests包,但是requests包会顺带装了一些其他依赖的小包,所以为了安全,只能将所有第三方包+python解释器一起打包。如下图所示。

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

Pyinstaller打包exe

这里呢,我就拿刚给同事写办公自动化脚本示例一下。源码示例效果,如下图所示。

1、我们来将这个.py的文件打包成一个exe,我们直接cmd切换到这个脚本的目录,执行命令:pyinstaller-F setup.py,如下图所示。

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

2、执行完毕之后,会生成几个文件夹,如下图所示。

3、在dist里面呢,就有了一个exe程序,这个就是可执行的exe程序,如下图所示。

4、我们把这个setup.exe拖到和setup.py平级的目录,我们来运行一下这个,效果图如下图所示。

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

6、接下来我们再来打包一个带界面的,这里我用pyqt5写了一个最简单的框架,看一下打包成exe是否能运行成功,效果图如下图所示。

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

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

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

执行命令:pyinstaller -F -w-i wind.ico setup.py,如下图所示。

9、默认打包图片,如下图所示。

10、加上 -i 参数之后,如下图所示,会形成一个类似风力发电机的logo图案。

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

11、到此,我们能用到的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为啥要打包_Python文件如何打包成exe?相关推荐

  1. python生成whl包_python之PypI打包whl文件

    一.简单介绍 python中我们经常会用到第三方的包作为工具,比如爬虫解析工具,网络请求工具等.之所以要把它封装成包,意识为了技术与业务分离,二是为了能多 项目多平台共用.python里面用到的第三方 ...

  2. python外星人入侵添加音效_python外星人入侵游戏打包

    笔者配置:win10,python3.7 步骤: 1.使用pip install pyinstaller安装pyinstaller包,如下,貌似顺带装了pywin32等其他包. 2.cmd中进入要打包 ...

  3. python 文档操作_Python 文件操作

    一. Python 读写 创建文件 Python中对文件,文件夹(文件操作函数)的操作需要涉及到OS 模块和 shutil 模块 . 一) . OS模块 的基本操作 方法 功能 os.getcwd() ...

  4. electron打包现成的vue项目成.exe文件,build打包vue项目(quasar 框架)

    前言: 公司已有web端vue项目,现在有需求,需要把web端的该项目用electron打包成 .exe 可执行文件. 思考:打包成 .exe 文件,首先需要将vue项目在本地打包成静态可运行文件,其 ...

  5. webpack打包样式资源_使用loader去打包css文件_打包less文件---webpack工作笔记004

    然后我们再来看看,怎么用webpack打包css资源文件, 因为我们知道webpack可以直接处理js,json文件,但是不能直接处理css文件,img文件对吧.. 我们现在,通过webpack的组件 ...

  6. 【webpack】使用webpack打包图片文件、打包时生成单独的css文件

    使用webpack打包图片文件 在scr目录下创建image文件夹,并且添加几张图片 在main.js使用import方式引入所有图片,并且append到app节点下 // 引入图片资源 import ...

  7. java文件打包jar文件_Java打包成jar文件,以及将jar文件导出为exe文件方法汇总(图形说明)...

    方法一:用j2ewiz,使用方法如下: 操作步骤: 1.         双击j2ewiz.exe,出现软件注册窗口,点击下一步. 2.         选择待转换的Jar文件及最低Jvm版本.我选择 ...

  8. matlab 打包封装,MATLAB程序封装成EXE文件

    MATLAB程序封装成EXE文件 1.设置编译器: 首先需要配置自己的Matlab Compiler,Matlab Compiler的作用是将程序编译成为机器可以直接执行的程序.配置Compiler ...

  9. python程序打包_python之程序打包

    18.1 Distutils基础 Distutils安装脚本 from distutils.core import setup setup(name='Hello',version='1.0',des ...

最新文章

  1. python3.8.5是python3吗_Python 升级到3.8.5
  2. 微软、苹果把未来押注 FPGA?凭什么
  3. ubuntu21.04下VSCode无法输入中文解决方法:應用商店安裝的話需要重裝
  4. 文件系统对性能的影响
  5. 粒子群算法组卷_粒子群(PSO)算法概念及代码实现
  6. fast.ai 深度学习笔记:第一部分第三课
  7. CSS3: box-sizing 属性的简单认识
  8. Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程
  9. 深入理解JavaScript的设计模式
  10. TensorFlow1.1搭建自编码网络
  11. 软件是如何做到控制芯片电路的闭合的?
  12. JavaScript hash 与 history 实现客户端路由的原理
  13. 站点(e.g. Hexo Blog)提交百度搜索引擎收录实现SEO
  14. xshell 免费版
  15. SQL 实验项目3_1-数据更新
  16. 利用卷积处理图片的实例(图像模糊,锐化...)
  17. 机器学习20:基于ResNet50和FaceNet实现人脸识别
  18. java两个字符串 相隔天数,计算两个日期之间相隔天数
  19. MindSphere On Cloud Foundry的一次尝试过程
  20. matlab网页制作代码

热门文章

  1. pdf转换成word免费软件都有哪些?一篇教会你!
  2. 用最简单的原理做最不简单的事——电磁流量计
  3. “网站变灰”的代码实现
  4. php多维数组排序方案。按照姓名 首字符 等排序
  5. mongodb文档太大_了解MongoDB BSON文档大小限制
  6. 计算光线反射的reflect向量
  7. 基于改进SEIR模型的病毒传播动力学建模与疫情预测分析(以COVID-19新冠病毒为例,超详细,带matlab源码)
  8. 计算机网络打开是空的,老哥们,电脑上设置文件共享。VLC本地网络打开空白怎么办。...
  9. 2023-2030老龄化(>=65)比率预测模型
  10. MySQL undo日志