当前位置:首页 > 文章中心 > 正文内容

如何使用PyInstaller将python程序打包成一个可执行文件

dgx6663个月前 (05-08)文章中心11

一、官网

PyInstaller官方网站:https://pyinstaller.org/en/stable/

二、国内镜像库

PyInstaller gitee:https://gitee.com/mirrors/pyinstaller

三、简介

在开发一些小工具给他人使用时,他人的系统中可能并没有安装python环境或没有安装相应的第三方库,要求对方安装不怎么现实,特别是对方不是技术人员的时候,此时将开发好的脚步通过pyinstaller打包成一个可执行文件是个不错的选择。

pyinstaller本身可以跨平台使用,但这里的跨平台指的是pyinstaller本身,通过pyinstaller打包出来的文件是无法跨平台的,在MacOS下使用pyinstaller打包python程序,打包后的内容只可在MacOS下运行,在windwos下打包的python程序,只可在Windows下运行。

四、安装Pyinstaller

  • 安装pywin32
    下载安装文件:查找到跟自己适用的python版本及window系统版本匹配的pywin32,下载后安装,使用pip命令安装:
pip install pywin32
  • 安装Pyinstaller
    从官网下载安装文件进行安装,使用pip命令安装:
pip install pyinstaller

五、使用Pyinstaller

5.1、打包方式

  • 使用下载Pyinstaller打包方式
    将需要打包的文件放在解压得到的Pyinstaller文件夹中,打开cmd窗口,把路径切换到当前路径打开命令提示行,输入以下内容(最后的是文件名):
python pyinstaller.py -F myfile.py
  • 使用pip Pyinstaller打包方式
    打开cmd窗口,把路径切换到文件所在路径(文件随便放在哪里都行)打开命令提示行,输入以下内容(最后的是文件名):
pyinstaller -F myfile.py

5.2、打包参数

-F 表示生成单个可执行文件
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
-p 表示你自己自定义需要加载的类路径,一般情况下用不到
-i 表示可执行文件的图标

5.3、打包命令

pyinstaller最重要的两个参数就是-F与-D参数

使用-F参数,pyinstaller会将python脚步打包成单个exe文件

使用-D参数,pyinstaller会将python脚步打包成一个文件夹,运行程序时,需要进入该文件夹,点击运行相应的可执行程序

此前为了美观,开源通过 -i 参数指定程序的icon(图标),但这个命令只在windows下生效,MacOS上是没有作用的,同时可以使用 -n 参数定义打包后文件的名称

如果你自己通过PyQt5或tkinter开发了界面,此时通常不希望在运行时弹出命令行,如windows下的cmd命令行,此时可以使用-w参数

综上所述,最常用的命令为:

pyinstaller -F SendMsgPerson2.py -i favicon.ico -p D:\work\source\com-luck\Test\ZentaoDingTalk\venv\Lib\site-packages -n 二级拉动(超过3天)
  • 其中 -D 参数或 -F 参数后面跟的是入口文件,即你 python xxx.py 运行程序时这个xxx.py文件。对应依赖比较多的程序,建议使用 -D, -F更适合单文件的py脚本。
  • -i 参数指定程序的icon(图标)。
  • -p 参数指定程序的依赖库位置。

Ps:不指定依赖库无法打包应用程序。

  • -n 参数指定生成打包应用程序的文件名。

5.4、打包步骤

  • 第一步,在App根目录输出cmd,进入命令窗口
  • 第二步,在App根目录放入favicon.ico图标作为exe可执行文件的Logo
  • 第三步,输入下面的命令进行打包
pyinstaller -F SendMsgPerson2.py -i favicon.ico -p D:\work\source\com-luck\Test\ZentaoDingTalk\venv\Lib\site-packages -n 二级拉动(超过3天)
  • 第四步,生成spec文件和exe可执行文件



  • 第五步,借助Windows系统的“任务计划程序”定时执行exe可执行文件

分级拉动命令如下:

pyinstaller -F SendTestTaskPerson.py -i favicon.ico -p D:\work\source\com-luck\Test\ZentaoDingTalkV3.0\venv\Lib\site-packages -n 分级拉动(测试单提醒)
pyinstaller -F SendMsgPerson.py -i favicon.ico -p D:\work\source\com-luck\Test\ZentaoDingTalkV3.0\venv\Lib\site-packages -n 分级拉动(全部)
pyinstaller -F SendBugPerson.py -i favicon.ico -p D:\work\source\com-luck\Test\ZentaoDingTalkV3.0\venv\Lib\site-packages -n 分级拉动(缺陷提醒)
pyinstaller -F SendBugPersonPri.py -i favicon.ico -p D:\work\source\com-luck\Test\ZentaoDingTalkV3.0\venv\Lib\site-packages -n 分级拉动(立即紧急Bug)
pyinstaller -F SendBugRobotCard.py -i favicon.ico -p D:\work\source\com-luck\Test\ZentaoDingTalkV3.0\venv\Lib\site-packages -n 分级拉动(缺陷提醒机器人)
pyinstaller -F SendBugByTest.py -i favicon.ico -p D:\work\source\com-luck\Test\ZentaoDingTalkV3.0\venv\Lib\site-packages -n 分级拉动(已解决未关闭)

扫描二维码推送至手机访问。

版权声明:本文由第六芝士网发布,如需转载请注明出处。

本文链接:http://www.dgx666.com/post/1405.html

分享给朋友:

“如何使用PyInstaller将python程序打包成一个可执行文件” 的相关文章

中文版AutoCAD 2014辅助设计案例精讲

赵岩、王秀梅编著的《中文版AutoCAD 2014辅助设计案例精讲(附光盘)》共4篇17章内容,涵盖了AutoCAD 2014的基本概念、应用范围、界面基本操作、图形文件管理、创建图块、应用图块、定义属性、编辑属性、图形尺寸的标注、图形资源的管理与共享、网格几何体建模、三维实体建模、三维模型的编辑与...

CAD如何设置打印样式?简单3步!初学者必看

很多初学CAD的小伙伴对CAD的打印设置都不熟悉,其实CAD打印也有一定的技巧,掌握一些CAD的打印技巧,可以帮助我们省下不少时间呢!那么今天小编就来跟大家分享一期关于CAD的打印技巧,小伙伴们拿好小本本记下来哦!一、打印样式设置1、打印界面首先,我们打开CAD,在CAD界面中点击打印按钮,或这按快...

三款好看好用的电脑桌面便签备忘录推荐

怎么在Win电脑桌面上添加便签/备忘录显示呢?给大家介绍三款常用的桌面便签备忘录工具!1、电脑自带便笺工具:sticky notesWindows系统自带的便笺工具,英文名sticky notes,在电脑桌面上点击“开始”,即可在程序列表中找到并打开。它以一张一张的彩色便利贴呈现在桌面上,可以记录简...

日常生活中事情太多,记录很重要,win10电脑桌面如何添加备忘录

电脑桌面备忘录Win10如何给桌面添加备忘录?在我们的日常生活中,我们经常记录重要的事情来提醒我们不要忘记。在Win10系统中,我们还可以在桌面上添加备忘录,时刻提醒我们。那么我们该怎么办呢?下面,小编给大家分享一下Win10桌面添加备忘录的具体操作方法。1.点击开始菜单,点击设置图标,进入设置界面...

计算机中丢失 msvcr110.dll怎么修复?

在很多时候计算机安装软件的时候都需要如果没有找到依赖的链接库就会报错,比如常见的“系统错误——无法启动此程序,因为计算机丢失msvcr110.dll。尝试重新安装程序以解决问题”。但是很多小伙伴不知道怎么安装,这里就说一下msvcr110.dll的安装过程。一、直接下载msvcr110.dll直接百...

如何才能激活office2010?Office 2010安装及激活的详细图文教程

现在office办公用得比较多的还是office 2010,但是有很多的小伙伴不知道怎么安装和激活,我把自己的一套方法共享给大家,希望可以帮到各位小伙伴们,不走冤枉路,我还是以图片文字的形式展示出来。第一步、安装方法首先下载microsoft Office2010,然后将下载的office2010压...