欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 【Python】在vscode利用pyinstaller中的.spec文件把py项目打包为.exe实现非py环境下使用的操作步骤

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

2025/5/18 1:07:21 来源:https://blog.csdn.net/weixin_56463218/article/details/147982465  浏览:    关键词:【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文件夹均作为软件的一部分进行压缩,发给他人使用,经过测试后,发现这样的方法可行,用户可顺利使用,该交付方法最把稳。

交付时必须打包的内容:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词