python 可视化打包工具集锦
Published in:2025-02-08 |
Words: 533 | Reading time: 2min | reading:

python 可视化打包工具集锦

打包

Python 打包工具用于将代码、依赖和资源文件整理成可分发的格式(如库、可执行文件等)

常用打包工具

pyinstaller

  • 使用方法
1
pyinstaller --onefile main.py
  • 通过spec文件打包
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(
['main.py'],
pathex=['/path/to/my_dash_app'],
binaries=[],
datas=[('assets/*', 'assets')], # 打包 assets 文件夹
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
)

pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='my_dash_app',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=False, # 隐藏控制台窗口
icon='icon.ico', # 设置图标
)

coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='my_dash_app',
)

详细参考如下:https://caozhaoqi.github.io/2024/04/09/pyinstaller-publish-python/

nuitka

将 Python 代码编译为 C 代码,再生成可执行文件, 性能优于普通打包工具

1
nuitka --standalone --onefile your_script.py

详细参考如下:https://caozhaoqi.github.io/2024/04/10/setup-tools-python/

cx_Freeze

  • publish
1
cxfreeze your_script.py --target-dir dist

Briefcase

打包为桌面应用

1
2
3
4
5
6
pip install briefcase
# 创建项目模板
briefcase new

# 进入项目目录
cd myapp
  • 打包
1
2
3
4
5
# 生成各平台安装包
briefcase create # 创建基础结构
briefcase build # 构建应用
briefcase run # 本地运行测试
briefcase package # 生成安装包(如 .dmg、.msi)

PyOxidizer

将 Python 应用编译为独立可执行文件,启动速度快。
支持跨平台。
生成的文件体积较小。

  • 打包
1
2
3
4
5
6
7
8
9
10
11
# 安装
pip install pyoxidizer

# 创建配置文件
pyoxidizer init-config-file

# 编辑生成的 `pyoxidizer.bzl` 文件,指定入口脚本和依赖
# 生成可执行文件
pyoxidizer build

# 输出路径:`build/` 目录

Briefcase

跨平台GUI工具 可生成跨平台安装包

1
2
pip install briefcase
fbs startproject

fbs

用于 pyside pyqt5 打包 局限性较大

1
pip install fbs
  • 打包
1
2
fbs freeze       # 生成可执行文件
fbs installer # 创建安装包(如 .exe、.dmg)

修改 src/build/settings/base.json 设置应用名称、版本等。

打包后文件转换

NSIS

打包后文件转换为安装工具 可根据安装工具安装程序

Inno Setup

创建自定义的安装向导

  • 参考链接
1
https://caozhaoqi.github.io/2024/04/09/nuitka-publish-python/
Prev:
在macOS使用ntfs格式硬盘方法
Next:
磁力链接与ed2k的自动化检测处理