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

相关推荐
江沉晚呤时7 小时前
在 C# 中调用 Python 脚本:实现跨语言功能集成
python·microsoft·c#·.net·.netcore·.net core
FreeBuf_7 小时前
黄金旋律IAB组织利用暴露的ASP.NET机器密钥实施未授权访问
网络·后端·asp.net
电脑能手8 小时前
如何远程访问在WSL运行的Jupyter Notebook
ide·python·jupyter
Edward-tan8 小时前
CCPD 车牌数据集提取标注,并转为标准 YOLO 格式
python
老胖闲聊8 小时前
Python I/O 库【输入输出】全面详解
开发语言·python
张小洛8 小时前
Spring AOP 是如何生效的(入口源码级解析)?
java·后端·spring
倔强青铜三9 小时前
苦练Python第18天:Python异常处理锦囊
人工智能·python·面试
倔强青铜三9 小时前
苦练Python第17天:你必须掌握的Python内置函数
人工智能·python·面试
观默9 小时前
AI新概念--值得你学习的上下文工程
程序员·aigc·ai编程
迷路爸爸1809 小时前
让 VSCode 调试器像 PyCharm 一样显示 Tensor Shape、变量形状、变量长度、维度信息
ide·vscode·python·pycharm·debug·调试