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

相关推荐
老夫的码又出BUG了29 分钟前
分布式Web应用场景下存在的Session问题
前端·分布式·后端
工业互联网专业32 分钟前
基于协同过滤算法的小说推荐系统_django+spider
python·django·毕业设计·源码·课程设计·spider·协同过滤算法
星星的月亮叫太阳38 分钟前
large-scale-DRL-exploration 代码阅读 总结
python·算法
Q_Q19632884751 小时前
python+django/flask基于Echarts+Python的图书零售监测系统设计与实现(带大屏)
spring boot·python·django·flask·node.js·php
深度学习lover1 小时前
<数据集>yolo航拍交通目标识别数据集<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·航拍交通目标识别
程序猿20231 小时前
Python每日一练---第二天:合并两个有序数组
开发语言·python
权泽谦2 小时前
用 Flask + OpenAI API 打造一个智能聊天机器人(附完整源码与部署教程)
python·机器人·flask
njxiejing2 小时前
Numpy一维、二维、三维数组切片实例
开发语言·python·numpy
L.EscaRC2 小时前
Spring Boot 自定义组件深度解析
java·spring boot·后端
lskisme3 小时前
springboot maven导入本地jar包
开发语言·python·pycharm