Python 升级之路( Lv27 ) 打包工具 pyinstaller

开发
今天我们将学习 pyinstaller,利用其将 Python 程序打包成 Windows 可执行的 exe 程序。

今天我们将学习pyinstaller, 利用其将Python 程序打包成Windows可执行的exe程序。

今日冒险片段上:

在结束浅析之地的冒险之后, 他们继续走, 便走到一片巨大山脉. 而出口只有眼前的这个洞穴. 而据米斯特对这个地方的了解, 这个区域叫蜘蛛洞穴. 是通往首都的毕竟之地. 但是在这个洞穴里面栖息这很多蜘蛛, 有些甚至携带剧毒. 听人劝, 吃饱饭. 因此了不起非常小心, 开始小心翼翼的通过洞穴.

什么是 pyinstaller

pyinstaller 是Python 提供的一个第三方拓展库模块. 它的功能是将我们的 Python 程序打包成可执行的 .exe 程序。

安装

方式一:pycharm安装

  • 安装 pyinstaller 模块 在 pycharm 中操作:file-->setting-->Project:xxx -->Project interpretor,再点击(加号)
  • 在新弹窗中输入要下载的第三方模块, 然后点击该模块, 最后点击左下角安装即可

方式二:命令行安装

命令行安装: 在命令行输入一下命令进行安装

pip install pyinstaller

使用

最基本的使用方式:

pyinstaller  xxx.py

注意: 后面可以跟多个python文件, 但注意用空格隔开。

参数介绍

pyinstall 打包时, 可以跟各种参数, 这些参数用来拓展打包时需要的定制需求。

常用参数如下表所示:

参数名

作用

-F / --onefile

打包一个成单个文件, 多个.py文件或者需要打包其他资源(图片,音频) 不要使用

-D / --onedir

打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码

-w / –windowed/–noconsole

程序启动的时候不会打开命令行 (只对Windows有效, 编写GUI程序时使用此参数有用)

-i /–icon

指定打包之后的.exe文件的图标

-n / –name=NAME

指定打包之后的.exe 文件的名称

-v FILE /–version=FILE

指定打包之后的.exe 文件的版本信息. FILE: 版本信息描述文件编写请点击查看

-a/--ascii

不包含 Unicode 字符集支持

-d/--debug

产生 debug 版本的可执行文件

-c /--console/ --nowindowed

使用命令行执行(此参数默认开启)

-v / --version

查看当前pyinstaller版本

--add-data <源目录;目标目录or源目录:目标目录>

将源目录文件额外打包到.exe程序所在目标目录. ; Windows下使用, :Linux下使用

-h/--help

查看该命令帮助信息

利用自带帮助文档进行学习

下载pyinstaller 之后, 可以输入pyinstaller -h 或者 pyinstaller --help , 来查看其自带的帮助文档。

打包

(1) 方式一:利用命令行打包

利用上面所学到的参数,对文件进行打包。

  • 将文件打包成 xxx.exe
pyinstaller -F xxx.py
  • 将文件打包成 xxx.exe, 并且运行时不打开命令行(tkinter程序打包时使用)
pyinstaller -F -w xxx.py
  • 打包上一章坦克大战源码 将源码打包成 坦克大战v1.0.1.exe 并且运行时不打开命令行, 将.\img\p1tankU.gif设置为程序图标, 并将当前.\img\目录下文件打包到 .exe程序运行所在目录, 且命名为.\img\
pyinstaller -w -D  -i .\img\p1tankU.gif   -n "坦克大战v1.0.1"   tank26.py --add-data ".\img\;.\img\"

(2) 方式二:利用图形界面打包

auto-py-to-exe 用于将Python程序打包成可执行文件的图形化工具 该工具的作用是将我们的在图形化界面点击的选项转换成方式一中的命令。

  • 安装方式 :pip install auto-py-to-exe
  • 启动方式:  命令行输入 auto-py-to-exe
  • 启动后, 我们只需要根据情况去选择, 然后点击底部蓝色按钮即可

今日冒险片段下:

洞穴里面的冒险可谓是百密一疏, 就在即将通过时. 由于了不起的放松导致一块岩石掉落到地上, 发出了刺耳的声音. 顿时各种蜘蛛蜂拥而来, 好在利用蜘蛛惧火的特性, 二人将其驱散. 但是随着而来的巨大虚影却让他们紧绷的精神中多了一丝凝重. 来着正式此地领主, 一只名为艾克洛索的巨大蜘蛛. 虽然它的身躯要比普通的蜘蛛打上几十倍, 但是敏捷倒是丝毫不比他们差. 在较为狭小的空间内四处跳动, 借以寻找到冒险家的破绽进而攻击. 了不起对这个仿佛拥有智慧的怪物不敢大意. 佯装要逃跑, 吸引其主动攻击, 然后米斯特借机偷袭.  纵然其能吐出强力蛛丝, 但在二人的合力围攻下, 艾克洛索逐渐败下阵来. 最终被二人击败, 与此同时一道金光闪过, 了不起成功晋升到lv28.

责任编辑:赵宁宁 来源: Python技术
相关推荐

2024-12-23 16:00:00

GUI编程tkinter

2025-01-20 13:19:02

2025-03-03 10:16:04

2025-02-24 10:17:48

2025-02-18 08:30:00

GUIPythontkinter

2024-12-23 14:54:47

2024-09-02 00:00:01

2018-05-30 15:33:00

打包工具Web

2024-03-11 00:02:00

Vite开源工具

2014-12-09 12:57:19

AnySDK

2020-12-23 10:30:50

Web安全截包工具服务器

2024-03-11 00:07:00

VueRustGo

2023-10-16 07:42:10

前端构建高性能

2023-10-31 07:27:22

开源工具MySQL协议

2012-05-24 14:26:25

CNZZ统计移动开发

2021-12-25 22:29:04

WebpackRollup 前端

2021-10-08 09:27:11

Python图形化工具

2012-12-28 13:35:37

网络无线网络

2024-02-20 08:51:56

PythonFlask工具

2020-11-19 10:15:56

tcpdump命令Linux
点赞
收藏

51CTO技术栈公众号