PyInstaller 打包 Python 应用程序一键双击运行

PyInstaller 打包 Python 应用程序一键双击运行

作为一个词语,"活着"在语言里充满了力量,它的力量不是来自于喊叫,也不是来自于进攻,而是忍受,去忍受生命赋予我们的责任,去忍受现实给予我们的幸福和苦难、无聊和平庸。 ------余华《活着》

介绍

PyInstaller是一个用于将Python应用程序打包成独立可执行文件的工具。本教程将指导你从安装PyInstaller到成功打包应用程序,包括生成的文件目录结构等。

步骤 1:安装 PyInstaller

首先,确保你已经安装了Python。然后,使用以下命令安装PyInstaller:

bash 复制代码
pip install pyinstaller

步骤 2:创建你的 Python 应用程序

编写你的Python应用程序,例如一个名为 app.py 的简单脚本。确保所有依赖项都已经安装,并且你的应用程序在本地正常运行。

python 复制代码
# app.py
print("Hello, PyInstaller!")

步骤 3:使用 PyInstaller 打包应用程序

在终端中,导航到你的应用程序所在的目录,然后运行以下命令:

bash 复制代码
pyinstaller -F app.py

上述命令中:

  • -F 选项表示打包成单个可执行文件。
  • app.py 是你的应用程序文件名。

步骤 4:查看生成的文件

PyInstaller将在当前目录下创建一个名为 dist 的目录,其中包含打包后的应用程序。其次,还有一个build的文件夹,这是一个临时文件目录。 你可以在终端中输入以下命令查看生成的文件:

bash 复制代码
cd dist
ls

这将显示包含你的应用程序可执行文件的文件列表。

结论

至此,你已经成功使用PyInstaller将你的Python应用程序打包成一个独立的可执行文件。你可以将生成的文件分享给其他人,他们无需安装Python或任何依赖项即可运行你的应用程序。

这只是一个简单的示例,如果你的应用程序有其他依赖项、资源文件等,可能需要进一步调整PyInstaller的参数。

文末彩蛋

PyInstaller提供了许多参数和选项,以满足不同类型应用程序的需求。以下是一些常用的参数和选项:

  1. -F, --onefile: 将应用程序打包成单个可执行文件。

    bash 复制代码
    pyinstaller -F app.py
  2. --name: 指定生成的可执行文件的名称。

    bash 复制代码
    pyinstaller -F --name YourAppName app.py
  3. -D, --onedir: 将应用程序打包成一个文件夹,包含多个文件。

    bash 复制代码
    pyinstaller -D app.py
  4. -w, --noconsole: 创建一个没有控制台窗口的GUI应用程序。

    bash 复制代码
    pyinstaller -w app.py
  5. --icon: 指定应用程序的图标文件。

    bash 复制代码
    pyinstaller --icon=app_icon.ico app.py
  6. --hidden-import: 明确指定需要包含的隐藏导入(例如动态导入的模块)。

    bash 复制代码
    pyinstaller --hidden-import=module_name app.py
  7. --add-data: 添加附加的数据文件或文件夹。

    bash 复制代码
    pyinstaller --add-data "path/to/data:data" app.py
  8. --exclude-module: 排除特定模块。

    bash 复制代码
    pyinstaller --exclude-module=module_name app.py
  9. --upx-dir: 指定UPX可执行文件压缩工具的路径。

    bash 复制代码
    pyinstaller --upx-dir=path/to/upx app.py
  10. --clean: 在构建之前删除临时文件。

    bash 复制代码
    pyinstaller --clean app.py

这些只是一些常见的选项,PyInstaller提供了更多的参数和配置选项。你可以查阅PyInstaller的官方文档以获取详细信息:PyInstaller Documentation

相关推荐
追逐时光者6 小时前
精选 4 款基于 .NET 开源、功能强大的 Windows 系统优化工具
后端·.net
TF男孩6 小时前
ARQ:一款低成本的消息队列,实现每秒万级吞吐
后端·python·消息队列
AAA修煤气灶刘哥8 小时前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
AAA修煤气灶刘哥8 小时前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
你的人类朋友8 小时前
什么是API签名?
前端·后端·安全
昵称为空C10 小时前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默10 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
RoyLin11 小时前
TypeScript设计模式:适配器模式
前端·后端·node.js
大模型教程11 小时前
8GB显存笔记本能跑多大AI模型?这个计算公式90%的人都不知道!
程序员·llm·agent
该用户已不存在11 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust