Python打包命令汇总

1、pyinstaller打包

  • 环境安装:pip install pyinstaller
  • 网络不好可以通过 -i 指定安装源:pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 安装完成后通过:pyinstaller --version 查看是否安装成功
  • 打包单个脚本:pyinstaller -F -w -i python.ico main.py

pyinstaller参数说明:

参数 用法
-F 生成结果是一个 exe 文件,所有的第三方依赖、资源和代码均被打包进该 exe 内
-D 生成结果是一个目录,各种第三方依赖、资源和 exe 同时存储在该目录(默认)
-a 不包含unicode支持
-d 执行生成的 exe 时,会输出一些log,有助于查错
-w 不显示命令行窗口
-c 显示命令行窗口(默认)
-p 指定额外的 import 路径,类似于使用 python path
-i 指定图标
-v 显示版本号
-n 生成的 .exe 的文件名

2、nuitka打包

nuitka可以将python代码(自己写的部分)转换成C代码,以提高运行的速度。

  • 安装环境:pip installer nuitka

  • pip install nuitka -i https://pypi.tuna.tsinghua.edu.cn/simple/

  • 简单示例:nuitka --standalone --onefile --show-memory --show-progress --nofollow-imports --output-dir=out --windows-icon-from-ico=lion main.py

    --mingw64 默认为已经安装的vs2017去编译,否则就按指定的比如mingw(官方建议)
    --standalone 打包结果与本地的Python环境无关
    --onefile 打包结果为一个可执行文件
    --lto 用于启用链接时间优化,编译和链接阶段对整个程序进行优化,提高程序的性能和执行效率
    --remove-output 在打包结束后,清理打包过程中生成的临时文件
    --enable-plugin= 启用插件,等号后跟插件名,如在代码中使用了PySide6,就需要加上--enable-plugin=pyside6。具体的插件列表可以使用nuitka --plugin-list来查看
    -disable-console 在运行打包后的程序时,不会弹出控制台
    --include-package-data= 包含给定软件包名称中的文件,软件包名称,在运行程序时提示FileNotFoundError等错误,可以使用该选项试试
    --include-data-files= 按文件名包含文件,等号后的格式为<SRC=DEST>。SRC指的是文件夹的路径,DEST指的是文件夹相对于打包结果的路径,其中DEST只能使用相对路径
    --include-data-dir= 包含文件夹中的文件,等号后的格式为<SRC=DEST>。使用方法与--include-data-files=相同
    --output-dir=out 生成exe到out文件夹下面去
    --show-progress 显示编译的进度,很直观
    --show-memory 显示内存的占用
    --windows-icon-from-ico=你的.ico 软件的图标
    --windows-company-name=Windows下软件公司信息
    --windows-product-name=Windows下软件名称
    --windows-file-version=Windows下软件的信息
    --windows-product-version=Windows下软件的产品信息
    --windows-file-description=Windows下软件的作用描述
    --windows-uac-admin=Windows下用户可以使用管理员权限来安装
    --linux-onefile-icon=Linux下的图标位置

3、cx_Freeze打包

cx_Freeze 可以很方便地将 Python 程序打包成单独的可执行文件,方便用户快速安装和使用

  • pip install cx_Freeze

  • 使用:cxfreeze --target-dir=dist --target-name=main --base-name=Win32Gui --icon=zigbee.ico main.py

    name:‌应用的名称。‌这是打包后生成的可执行文件的名称。‌
    version:‌应用的版本。‌用于标识应用的版本号。‌
    description:‌应用的描述。‌提供关于应用的简短描述,‌有助于用户了解应用的功能和用途。‌
    executables:‌可执行文件列表。‌定义了要打包的 Python 脚本及其相关配置,‌如图标、‌基础窗口等。‌
    build_exe_options:‌构建执行文件的选项。‌包括需要打包的额外包和需要包含的文件或文件夹等。‌
    icon:‌图标设置。‌允许在生成的可执行文件中指定一个图标文件,‌使应用程序看起来更专业。‌
    include_files:‌添加数据文件。‌如果在应用中使用了额外的数据文件(‌如配置文件、‌图像等)‌,‌可以在 setup 脚本中添加这些文件。‌
    hide_console:‌隐藏控制台窗口。‌对于 GUI 应用,‌可以通过设置 base 参数为 Win32GUI 来隐藏运行时显示的控制台窗口。‌
    target-dir 和 target-name:‌指定打包后的程序路径和名称。‌这些参数可以帮助用户更好地组织和管理打包后的文件。‌
    base-name:‌基础窗口名称。‌如果程序使用图形化界面,‌可以通过设置 base-name 参数来配置程序打开时是否隐藏黑窗口。‌
    include-modules:‌要包含的模块或库。‌允许用户在打包过程中包含特定的模块或库,‌以确保打包后的程序能够正常运行。‌

相关推荐
Swizard6 分钟前
别再迷信“准确率”了!一文读懂 AI 图像分割的黄金标尺 —— Dice 系数
python·算法·训练
麦麦鸡腿堡10 分钟前
Java_类的加载
java·开发语言
我命由我1234510 分钟前
VSCode - Prettier 配置格式化的单行长度
开发语言·前端·ide·vscode·前端框架·编辑器·学习方法
JIngJaneIL19 分钟前
基于java + vue校园快递物流管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js
超级大只老咪23 分钟前
数组的正向存储VS反向存储(Java)
java·开发语言·python
柏木乃一23 分钟前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
毕设源码-赖学姐28 分钟前
【开题答辩全过程】以 基于JSP的物流信息网的设计与实现为例,包含答辩的问题和答案
java·开发语言
leo__52029 分钟前
基于LDA的数据降维:原理与MATLAB实现
开发语言·matlab·信息可视化
asdfg125896336 分钟前
JS中的闭包应用
开发语言·前端·javascript
长安牧笛43 分钟前
心理健康情绪日记分析系统,用户输入文字日记后,AI提取情绪关键词,焦虑/愉悦等,生成周情绪波动曲线,并推荐调节建议。
python