当前位置: 首页 > news >正文

PyInstaller 打包python 程序 成 可执行文件

pyinstaller --onefile --name my_project --add-data "config/config.json:config" main.py

要将整个 Python 项目打包成一个可执行文件,可以使用 PyInstaller 来完成这个任务。以下是如何将整个项目打包成可执行文件的步骤:

1. 安装 PyInstaller:

确保你已经安装了 PyInstaller,如果没有安装,可以使用以下命令进行安装:

bash

pip install pyinstaller

2. 导航到项目目录:

打开终端或命令提示符,进入你的项目根目录(包含主 Python 脚本的目录)。

3. 运行 PyInstaller 命令:

在项目目录下运行以下命令,将整个项目打包成一个可执行文件:

bash

pyinstaller --onefile --name your_executable_name your_entry_script.py

参数说明:
  • --onefile:将所有依赖项打包成一个单独的可执行文件。

  • --name:生成的可执行文件的名称,你可以指定一个自定义的名字。

  • your_entry_script.py:项目的入口脚本(通常是包含 if __name__ == '__main__': 的脚本)。

例如,如果你的项目入口脚本是 main.py,你可以这样运行:

bash

pyinstaller --onefile --name my_project main.py

4. 处理额外资源(如数据文件、配置文件):

如果你的项目中有需要包含的额外资源文件(比如 JSON、配置文件、图片等),你可以使用 --add-data 参数来将这些文件打包进去。

格式是:

bash

pyinstaller --onefile --name my_project --add-data "path_to_file_or_folder:target_folder_in_dist" main.py

例如:

bash

pyinstaller --onefile --name my_project --add-data "config/config.json:config" main.py

这样会将 config/config.json 文件添加到生成的可执行文件中。

5. 找到生成的可执行文件:

打包完成后,PyInstaller 会生成 dist 文件夹,里面包含生成的可执行文件。

6. 运行可执行文件:

进入 dist 目录,运行生成的可执行文件。

  • 在 Windows 上:

    bash

    dist\your_executable_name.exe

  • 在 Linux/Mac 上:

    bash

    ./dist/your_executable_name

7. 其他常用参数:

  • --icon=icon.ico:为可执行文件设置自定义图标。

  • --hidden-import=module_name:如果有模块未被自动识别,可以手动指定导入。

  • --noconsole:如果你不希望在执行时显示终端窗口(适用于图形界面应用程序),可以使用这个参数。

例子:

假设你的项目结构如下:

bash

my_project/ │ ├── main.py # 项目的入口 ├── utils.py # 辅助模块 ├── config/ │ └── config.json # 配置文件 └── assets/ └── logo.png # 资源文件

你可以使用如下命令将整个项目打包:

bash

pyinstaller --onefile --name my_project_executable --add-data "config/config.json:config" --add-data "assets/logo.png:assets" main.py

打包完成后,你可以在 dist/my_project_executable 目录中找到打包好的可执行文件。

这样,你的整个项目就被打包成了一个可执行文件。

相关文章:

  • 算法-数据结构(图)-迪杰斯特拉最短逻辑算法( Dijkstra)
  • 使用扩散模型DDPM生成Sine正弦曲线的案例(使用Classifier-free guidance)
  • 力扣——最长递增子序列
  • (二)未来十至二十年的信息技术核心领域(AI、数据库、编程语言)完全零基础者的学习路径与技能提升策略
  • StableDiffusion打包 项目迁移 项目分发 0
  • DeepSeek如何辅助学术写作的性质研究?
  • 什么是回调函数
  • Linux版本控制器Git【Ubuntu系统】
  • RPA 与 AI 结合:开启智能自动化新时代
  • Wireshark Lua 插件教程
  • window基于wsl部署vllm流程及踩坑经历(包含cuda toolkit、nvcc版本问题)
  • 【leetcode hot 100 15】三数之和
  • StableDiffusion本地部署 2
  • TCP的三次握手与四次挥手:建立与终止连接的关键步骤
  • pta天梯L1-003 个位数统计
  • 点云配准技术的演进与前沿探索:从传统算法到深度学习融合(3)
  • Linux上用C++和GCC开发程序实现不同MySQL实例下单个Schema之间的稳定高效的数据迁移
  • Android应用app实现AI电话机器人接打电话
  • 【杂谈】-2025年2月五大大型语言模型(LLMs)
  • 有没有比黑暗森林更黑暗的理论
  • 习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式并发表重要讲话
  • “无锡景・江南韵”:中国评弹艺术在尼日利亚收获众多粉丝
  • 成就彼此,照亮世界:“中欧建交50周年论坛”在沪成功举行
  • 2025年4月份CPI环比由降转涨,核心CPI涨幅稳定
  • 国家主席习近平会见斯洛伐克总理菲佐
  • 印度杰纳布河上游两座水电站均已重新开闸