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:‌要包含的模块或库。‌允许用户在打包过程中包含特定的模块或库,‌以确保打包后的程序能够正常运行。‌

相关推荐
Dfreedom.3 分钟前
从 model(x) 到__call__:解密深度学习框架的设计基石
人工智能·pytorch·python·深度学习·call
weixin_440730504 分钟前
java数组整理笔记
java·开发语言·笔记
weixin_425023007 分钟前
Spring Boot 配置文件优先级详解
spring boot·后端·python
Thera77721 分钟前
状态机(State Machine)详解:原理、优缺点与 C++ 实战示例
开发语言·c++
niucloud-admin1 小时前
java服务端——controller控制器
java·开发语言
小徐Chao努力1 小时前
【Langchain4j-Java AI开发】06-工具与函数调用
java·人工智能·python
无心水1 小时前
【神经风格迁移:全链路压测】33、全链路监控与性能优化最佳实践:Java+Python+AI系统稳定性保障的终极武器
java·python·性能优化
夏幻灵2 小时前
JAVA基础:基本数据类型和引用数据类型
java·开发语言
luoluoal2 小时前
基于python的小区监控图像拼接系统(源码+文档)
python·mysql·django·毕业设计·源码
cike_y2 小时前
Spring-Bean的作用域&Bean的自动装配
java·开发语言·数据库·spring