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

使用PyInstaller打包 Python 工程

引言:大模型是个好工具,尽管好多内容都是拼凑的,但是整理学到的就是自己的。因工作需要隐藏python源代码,方法有PyInstaller 、Cpython等多种方法,PyInstaller更为常用,PyInstaller打包 Python 工程步骤整理如下:


一、确保系统环境准备就绪

  • 安装 Python 和 pip
    确认版本(建议 Python 3.6+):

    python3 --version
    pip3 --version
    

    若未安装,则根据使用系统情况进行安装。

  • 安装 PyInstaller
    通过 pip 安装最新版 PyInstaller:

    pip install pyinstaller==4.10
    

二、打包 Python 工程

1. 最简打包(生成单个可执行文件)
  • 打包并保留控制台窗口(适用于命令行程序)

    pyinstaller your_script.py
    
2.常用选项
  • 进入工程根目录,执行:

    pyinstaller --onefile your_script.py
    
    • --onefile: 生成单个可执行文件,将所有依赖打包成单个 .exe(Windows)或无后缀文件(Linux/macOS)。
    • your_script.py:替换为你的主程序入口文件。
    • 输出目录:dist/ 下生成可执行文件。
  • 打包 GUI 程序(隐藏控制台)

    pyinstaller --onefile --windowed your_script.py
    

    --windowed: 适用于 PyQt/Tkinter 等 GUI 程序,运行时不显示命令行窗口。

  • 使用 --debug 参数生成详细日志:

    pyinstaller --debug your_script.py
    

三、打包高级选项

1. 添加数据文件(如配置文件、图片)
pyinstaller --onefile --add-data "data/config.json:data" your_script.py
  • 格式源路径;目标路径(Windows 用 ;,Linux/macOS 用 :)。
  • 示例:将 data/config.json 打包到程序内的 data 目录。
2. 指定程序图标
pyinstaller --onefile --icon=app.ico your_script.py
  • 支持 .ico(Windows)、.icns(macOS)、.png(部分系统)。
3. 排除不必要的模块(减小体积)
pyinstaller --onefile --exclude-module matplotlib your_script.py
  • 避免打包大型但未使用的库(如 matplotlibnumpy)。
4. 隐藏导入的模块(解决 ModuleNotFoundError
pyinstaller --onefile --hidden-import=pandas --hidden-import=numpy your_script.py
  • 或通过 .spec 文件配置(见下文)。
5. 启用 UPX 压缩(需安装 UPX)
pyinstaller --onefile --upx-dir=/path/to/upx your_script.py
<
http://www.dtcms.com/a/287777.html

相关文章:

  • 【C++基础】内存对齐原则与性能影响:面试高频考点与真题解析
  • CSS篇——第二章 六十五项关键技能(下篇)
  • 统计学习方法的三要素
  • Github Actions Workflows 上传 Dropbox
  • 物联网-规则引擎的定义
  • 解决问题七大步骤
  • python基础复习
  • 【RL第一篇】强化学习入门:核心概念全面详解
  • 永磁同步电机控制算法--弱磁控制(变交轴CCR-VQV)
  • vue2 面试题及详细答案150道(141 - 150)
  • VUE2 学习笔记1
  • ndexedDB 与 LocalStorage:全面对比分析
  • 4 ASPICE的支持过程
  • docker构建springboot镜像
  • 【初识数据结构】CS61B中的基本图算法:DFS, BFS, Dijkstra, A* 算法及其来历用法
  • 字节跳动开源Seed-X 7B多语言翻译模型:28语种全覆盖,性能超越GPT-4、Gemini-2.5与Claude-3.5
  • 【开源项目】GPT学术优化 - GPT Academic
  • 探秘边缘安全架构设计要点解析
  • Linux 自旋锁
  • 四阶电商SEO审计指南:诊断流量漏洞→重建增长引擎(附免费工作簿)
  • 音频3A处理简介之AEC(回音消除)
  • 文生图-StoryGAN:用于故事可视化的顺序条件GAN
  • 《YOLOv13魔术师专栏》全景指南:从理论到工业级实战
  • 路由器SDH POS接口
  • Ps 2025安装包(Adobe Photoshop 2025)安装包免费免激活版下载 附图文详细安装教程
  • 《Web安全之机器学习入门》读书笔记总结
  • STM32的定时器输入捕获-超声波测距案例
  • 嵌入式学习-PyTorch(9)-day25
  • MVCC(多版本并发控制)介绍及实现原理
  • 算法题(175):小明的游戏