我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的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文件运行)相关推荐

  1. python pyinstaller 打包exe文件,(附带图片 + 自己、别人电脑上均可以运行)

    python pyinstaller 打包exe文件,(附带图片 + 自己.别人电脑上均可以运行) 科目:windows + python pyinstaller 打包exe 内容:打包程序.图片.视 ...

  2. VS2019项目打包exe文件教程

    VS2019项目打包exe文件教程 需要的环境 生成项目EXE 需要的环境 在使用Vs2019打包项目生成EXE文件,我们需要一个插件 这里提供两种安装插件的方法 Microsoft Visual S ...

  3. Python如何打包exe文件?如何换成喜欢的图标?

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 今天又想来分享一个Python打包exe文件的教程!!这次是最强终极版~~~~ 在我们代码写好后,分享给不会编程的朋友时,总会遇到许许多多的的问题 这个时 ...

  4. Python如何打包exe文件? 如何换成喜欢的图标?

    要将Python脚本打包为可执行的exe文件,可以使用第三方库pyinstaller.以下是将Python脚本打包为可执行exe文件的步骤: 1.安装pyinstaller:在命令行中使用以下命令安装 ...

  5. flutter项目打包.exe文件发布windows版

    目录 发布windows版 1.为现有的 Flutter 应用程序添加桌面支持 2..创建main_desktop.dart文件 3.hover安装和环境配置 4.初始化,并打包 坑1 发布windo ...

  6. Hellow Python之打包 exe 文件超级试错

    Hellow Python 文件超级试错 发展历史 诞生于 1989 年, Python是一个脚本语言,被解释器解释执行. 属于高级语言,运行慢,Python为我们提供了非常完善的基础代码库,开发效率 ...

  7. Unity 编辑器运行没问题,打包exe文件运行蓝屏?

    这真的是一种折磨,为什么网上找不到答案?是因为只有我遇到这种问题吗? 项目编辑器里边运行完全没问题,一打包出来运行就报错,各种方法都试了,就是测不出来. 最后: 网上查看各种资料,感觉问题可能出在Pl ...

  8. Python项目打包后找不到路径问题,将资源文件数据文件打包到exe文件中

    目录 问题描述 Python项目打包后,找不到配置文件路径 1.冻结路径 2.使用方法 将资源文件打包到exe文件中 1.打包前准备 2.返回临时路径 3.使用方法 4.编译打包 问题描述 pyins ...

  9. python 打包exe_将python文件打包exe独立运行程序方法详解

    首先需要安装pyinstaller库. pip install pyinstaller exe程序打包步骤 cmd 进入要编译的python文件所在的文件夹, 然后 pyinstaller -F he ...

  10. python网易云音乐下载打包exe文件,Windows可运行

    下载原理: 通过官方的下载链接http://music.163.com/song/media/outer/url?id=歌曲id.mp3, 分析网页寻找歌曲id组装成song_url,urlretri ...

最新文章

  1. Python3 编程示例:斐波纳契数列
  2. 网站开发之DIV+CSS简单布局网站入门篇(五)
  3. 电子设计竞赛(三)-SPWM与PID
  4. ***CI查询辅助函数:insert_id()、affected_rows()
  5. AppCan移动平台,开发者是这样用的……
  6. docker-compose listing workers for Build: failed to list workers
  7. 数学建模-模糊综合评价法(评价模型)
  8. 【操作系统】结合哲学家进餐问题分析如何预防死锁
  9. Word怎么删除背景颜色
  10. android qq传文件夹,电脑传到手机QQ的资料在哪个文件夹里?
  11. css 让图标上下跳,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
  12. ARM处理器的 Handler mode 与 Thread mode 以及 MSP 和 PSP
  13. html、css基础---学习笔记
  14. cadence SPB17.4 capture and cis 全部错误消息列表
  15. vue3实现搜索功能
  16. 利用Python批量识别电子账单数据
  17. 如何下载门头沟区卫星地图高清版大图
  18. 二叉树的深度(递归+非递归)
  19. linux系统gpk-update-icon进程占用CPU资源100%
  20. Git(分布式版本控制系统)

热门文章

  1. C# 注册根目录dll ocx 代码实现
  2. 那款手机是鸿蒙系统,全球第三大手机系统「鸿蒙」上线,这19款手机能抢先用...
  3. uniapp中实现swiper高度自适应 - vue3
  4. React Native Reload(双击R) 红屏 Could not connect to development server
  5. 当bean中有AOP切点时getBean(classT args0) 无法获取bean,报错
  6. 爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?
  7. 【2021】个人博客分类汇总
  8. Application 的 onCreate 和 attachBaseContext
  9. Linux下的DHCP固定IP地址
  10. C#:打印ASCII码