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

【Python】在vscode利用pyinstaller中的.spec文件把py项目打包为.exe实现非py环境下使用的操作步骤

【需要打包的项目结构-简单】

【打包步骤】

【1-将图标以.ico的格式保存在项目中】

可以用.jpg或.png的图像进行重名,注意要和项目在同一个路径下

【2-创建并填写main.sepc文件】

在终端输入以下指令自动创建main.sepc文件,会自动生成标准的文件

pyi-makespec --onefile --noconsoleo main.py

 然后将.sepc文件放于项目外部

main.sepc文件需要修改的内容大致为:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=['tkinter'],  # 必须添加的隐藏依赖
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)

# ✅ 关键修复点:确保pyz变量正确定义
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    pyz,  # ✅ 这里引用的pyz必须已定义
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name='BoeMedicalTool',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=False,
    icon='medical.ico',  # 图标路径
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

 本项目的main.spec文件如下,需要注意的是main.py和icon图标需要输入其所在的路径,其他的可以不用手动修改,保持默认

# -*- mode: python ; coding: utf-8 -*-


a = Analysis(
    ['D:\\work and document\\medical_report_tool\\main.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=['tkinter'],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    [],
    name='ReportTool',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['D:\\work and document\\medical_report_tool\\tf.ico'],
)
 

【3-保存并开始打包】 

保存编辑好的.spec文件,在终端输入执行命令开始打包

pyinstaller main.spec

如果在打包过程中出现报错,可升级pyinstaller版本再执行一次上述命令打包

pip install --upgrade pyinstaller tuna.tsinghua.edu.cn/simple

打包过程完整日志:

随后在项目所在的同路径形成build和dist文件夹

build文件中为打包的关键部分

dist文件夹中保存.exe执行的应用程序,用户使用的时候双击.exe即可运行项目

为防止在非python环境中的电脑无法使用,本文将build和dist文件夹均作为软件的一部分进行压缩,发给他人使用,经过测试后,发现这样的方法可行,用户可顺利使用,该交付方法最把稳。

交付时必须打包的内容:

相关文章:

  • 【实战教程】从零实现DeepSeek AI多专家协作系统 - Spring Boot+React打造AI专家团队协作平台
  • wps excel将表格输出pdf时所有列在一张纸上
  • 28、动画魔法圣典:Framer Motion 时空奥义全解——React 19 交互动效
  • 智能手表集成测试报告(Integration Test Report)
  • lesson02-PyTorch开发环境安装
  • 游戏行业DDoS攻击类型及防御分析
  • 详细解释api
  • MySQL 迁移至 Doris 最佳实践方案
  • std::deque和std::vector对比
  • 使用Python与正则表达式高效提取Excel中的票号数据
  • CSS 布局系统深度解析:从传统到现代的布局方案
  • 1C:ENTERPRISE 8.3 实用开发者指南-示例和标准技术(Session1-Session3)
  • Android开发-在应用之间共享数据
  • 使用 Modern CMake 构建现代 C++ 项目:target从入门到实践
  • RK3568下QT实现输入框支持虚拟键盘
  • PYTHON训练营DAY26
  • 《Navicat之外的新选择:实测支持国产数据库的SQLynx核心功能解析》
  • 深入理解JavaScript中的闭包:原理、应用与常见问题
  • Web3.0:互联网的去中心化未来
  • 2505C++,py和go调用雅兰亭库的协程工具
  • 深圳南澳码头工程环评将再次举行听证会,项目与珊瑚最近距离仅80米
  • 吉利汽车一季度净利润大增264%,称整合极氪后实现整体效益超5%
  • 法学联合书单|法庭上的妇女
  • 乌总统:若与普京会谈,全面停火和交换战俘是主要议题
  • 视频|王弘治:王太后,“先天宫斗圣体”?
  • 习近平圆满结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典