python pyinstaller打包使用教程,直接打包或.spec打包

PyInstaller打包深度学习模型代码详细教程 由于工作需求,需要使用Pyinstaller库将Python深度学习模型打包成exe文件,特此花几天时间查找资料,进行实验。将过程做个梳理,记录下来,方便自己和他人日后查询。 阅读详情
AI摘要

本文介绍如何使用PyInstaller进行Python脚本的打包,包括直接打包和.spec文件定制打包。涵盖安装、基本命令、生成.spec文件及自定义设置,适合初学者和进阶用户。

个人用到时所写,如有补充、不足或问题,可以联系更改

使用pyinstaller直接打包,可能你引用的包或目录文件出现有但查找不到,没有这样的文件。我们就要去找文件改代码,看路径,很麻烦。这时候就可以使用.spec打包

**安装 PyInstaller**:如果你还没有安装 `PyInstaller`,你可以通过以下命令安装:

 pip install pyinstaller

使用pyinstaller直接打包

pyinstaller -c -F user_name.py -i user_name.ico

列举几个常用命令:

-D, --onedir 生成一个目录,可执行程序。

-F, --onefile 生成单个可执行文件。

-c, --console, --nowindowed 为标准 i/o 打开一个控制台窗口(默认选项)。在 Windows 中,如果第一个脚本是 ‘.pyw’ 文件,则此选项无效。简称(带控制台)

-w, --windowed, --noconsole 不提供用于标准 i/o 的控制台窗口。在 macOS 上,这也会触发构建一个 .app 捆绑程序。在 Windows 系统中,如果第一个脚本是 ‘.pyw’ 文件,则会自动设置该选项。在 *NIX 系统上,该选项将被忽略。简称(不带控制台,gui界面上非常有用)

-n NAME, --name NAME 为捆绑的应用程序和 spec 文件指定的名称(默认值:第一个脚本的名称)。

--i <FILE.ico or FILE.exe,ID or FILE.icns or Image or "NONE">, --icon <FILE.ico or FILE.exe,ID or FILE.icns or Image or "NONE"> FILE.ico:将图标应用于 Windows 可执行文件。FILE.exe,ID:从一个 exe 文件中提取带有 ID 的图标。FILE.icns:将图标应用到 macOS 的 .app 捆绑程序中。如果输入的图像文件不是对应平台的格式(Windows 为 ico,Mac 为 icns),PyInstaller 会尝试使用 Pillow 将图标翻译成正确的格式(如果安装了 Pillow)。使用 “NONE” 不应用任何图标,从而使操作系统显示默认图标(默认值:使用 PyInstaller 的图标)。该选项可多次使用。

可参考pyinstaller中文文档

使用 `PyInstaller` 生成 `.spec` 文件可以帮助你自定义打包过程。以下是如何生成 `.spec` 文件的步骤:

1. **生成 .spec 文件**:在命令行中进入你的 Python 脚本所在的目录,并运行以下命令(假设你的脚本名为 `your_script.py`):

   pyinstaller --name=your_app_name --onefile --windowed your_script.py

   - `--name`:指定生成的应用程序名称。
   - `--onefile`:将所有文件打包成一个可执行文件。
   - `--windowed`:在 Windows 上启动时隐藏命令行窗口(适用于 GUI 应用)。

   上述命令会生成一个 `.spec` 文件(例如 `your_app_name.spec`)在当前目录。

2. **自定义 .spec 文件**:可以使用文本编辑器打开生成的 `.spec` 文件,进行一些自定义设置,比如:

   - 添加数据文件(`datas`)
   - 修改隐式导入(`hiddenimports`)
   - 设置图标(`icon='your_icon.ico'`)

3. **使用 .spec 文件打包**:在修改 `.spec` 文件后,可以使用以下命令进行打包:

   pyinstaller your_app_name.spec

通过这些步骤,你就能够生成并自定义 `.spec` 文件,用于控制打包过程。

自定义,如图:

block_cipher = None

a = Analysis(
    ['执行文件名'],
    pathex=["C:\\Users\\user\\Desktop填写到项目文件的绝对路径"],
    binaries=[],
    datas=[
        # 将同一目录的文件和其他需要的数据文件包括在内,如
        (os.path.join("C:填写到项目文件的绝对路径", 'generate_img.py'), '.'),
        (os.path.join("C:填写到项目文件的绝对路径", 'wechat_auto'), 'wechat_auto'),
        (os.path.join("C:填写到项目文件的绝对路径", 'image.jpg'), '.'),
        (os.path.join("C:填写到项目文件的绝对路径", 'text_generate.md'), '.'),
        (os.path.join("C:填写到项目文件的绝对路径", 'ctrl_img.py'), '.'),
        (os.path.join("C:填写到项目文件的绝对路径", 'text_img.py'), '.'),
        (os.path.join("C:填写到项目文件的绝对路径", 'wechat_auto/__init__.py'), 'wechat_auto'),
        (os.path.join("C:填写到项目文件的绝对路径", 'wechat_auto/wechat_c_v.py'), 'wechat_auto')        # 导入同一目录文件夹下的自定义函数
    ],
    hiddenimports=[
        'wechat_auto/wechat_c_v','requests', 'urllib3'        # 手动添加的模块名
    ],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    cipher=block_cipher,
    noarchive=False,        # 是否显示控制台(终端)
)

pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='py_tkinter_gui',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=False,
    contents_directory='.'        # 打包到同一目录下(没有就添加)
)

coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='执行文件名'
)

 

Pyinstaller打包过程生成的.spec文件 为了实现程序在没有python环境的机器上也可以运行。pyinstaller模块作为python的一个第三方模块,使用它可以将python程序打包为可执行文件。 pyinstaller的安装方式可通过: pip installer pyinstaller 通常打包程序有两种情况: 情况一,打包一个python脚本文件; 情况二,打包一个python项目程序(包含多个文件夹、py文件,以及相关资源文件) 打包环境 win10,64位 python3.6 pyInstaller提供了两种不 阅读详情

相关推荐

35.使用pyInstaller和*.spec打包python程序的实用方法

当我们用py完成一些功能,可以通过将源码打包成exe来独立运行,用户使用时只需要执行这个exe文件即可,不需要在机器上再安装Python及其他包就可运行了。打包方式一般分为直接输入指令和利用spec文件进行打包。由于直接输入指令实际就是根据指令生成spec文件,再根据spec文件的内容进行打包操作,所以一下重点说明spec文件的内容。

坐忘了说画 5547

[Python进阶] Pyinstaller关于spec文件

之前在讲打包模式的时候,提到了在打包后会产生一个spec文件,这个文件其实就是个Python文件。这个文件会把要打包的脚本和使用的打包命令进行编码,然后告诉Pyinstaller应该怎么样来进行打包,比如要使用哪些命令,要添加哪些资源。有时候我们要打包的情况比较复杂,比如要添加很多资源、对很多参数进行设置,那么这样一来,我们手敲打包命令时就会导致命令很长,而且也容易出错。并且,我们在打包程序时也经常要打包好几次才能成功。每次打包都敲一遍这么长的命令是很麻烦的。这个时候那可以用spec文件来打包。

知智 1万+

pyinstaller利用spec文件打包的使用模板

pyinstaller打包 使用pyqt5开发软件,当项目越来越大,引用的资源越来越多时,那么使用pyinstaller进行打包,如果不利用spec文件,是很难满足打包需求的。 spec文件,其实你在使用 pyinstaller main.py打包时 ,也是会自动生成的,叫main.spec。 不过,如果你想把自己的资源文件一起打进包去,则需要对spec文件进行一些编辑,然后使用 pyinsta...

一心狮的博客 9483

pyinstaller打包生成的.spec文件解析

它包含了一系列的参数和选项,用于控制打包的行为和生成的可执行文件的特性。总的来说,.spec文件是PyInstaller的配置文件,用于指定打包过程中的参数和选项。通过修改.spec文件,可以定制打包过程,以满足特定的需求。它的.spec文件是用来配置打包过程的脚本文件。上述命令将根据.spec文件中的配置参数,将源代码和依赖项打包成可执行文件。生成的可执行文件将位于.spec文件所在目录的。配置完成后,可以使用PyInstaller来执行.spec文件,从而完成打包过程。

图灵追幕者博客录 5044

[python]使用pyinstaller打包python程序

1 概述 python脚本运行需要python,以及依赖的各种库。制作Exe程序,就是将该脚本、python程序及其依赖的第三方库打包成一个可执行文件。 这就使用到一个专用工具,Pyinstaller。该程序本身也是python下的一个程序,需要在python的环境中安装该程序,然后进行打包。 2 安装pyinstaller 与其他python下的程序安装运行。 3 打包生成文件形式 pyinst............

kevinshift的博客 1万+

pyinstaller通过spec文件打包py程序的步骤

这篇文章主要介绍了pyinstaller通过spec文件打包py程序,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下pyinstaller是python的一个第三方模块,使用它可以将python程序打包为可执行文件,实现打包后的程序在没有python环境的机器上也可以运行。通常我们打包程序时,会遇到两种情况:情况一,打包情况二,打包。

代码逐梦人 1928

Python pyinstaller打包exe最完整教程

python提供了多种方法用于将普通的*.py程序文件打包成exe文件。exe文件即可执行文件,打包后的*.exe应用不用依赖python,可以在他人的电脑上运行。 pyinstaller是一个第三方模块,专用于python程序的exe打包。此外python还有一些别的方法进行打包,但是pyinstaller打包最强大而且好用。 (万字长文涵盖文档所有重要内容)

pythonzzy的博客 29万+

Pyinstaller利用spec文件打包的使用模板

pyinstaller打包 使用pyqt5开发软件,当项目越来越大,引用的资源越来越多时,那么使用pyinstaller进行打包,如果不利用spec文件,是很难满足打包需求的。 spec文件,其实你在使用pyinstaller main.py打包时 ,也是会自动生成的,叫main.spec。 不过,如果你想把自己的资源文件一起打进包去,则需要对spec文件进行一些编辑,然后使用pyinstaller main.spec即可打包完成。 本文主要就是列举下pyinstaller利用spec文件进行打包.

chen801090的博客 3993

Pyinstaller的Spec文件用法

Pyinstallerd的应用记录前言SPEC打包SPEC内容说明一些实际应用的问题关于动态加载的module导入问题直接在spec中声明通过hook脚本导入runtime_hooks参数的使用打包后exe无法运行的问题管理员权限问题部分PC无法使用加密问题 前言 当我们用py完成一些功能,可以通过Pyinstaller将源码打包成exe来独立运行,用户使用时只需要执行这个exe文件即可,不需要在机器上再安装Python及其他包就可运行了。(理论上,后面会附加一些我自己实际运用时遇到的一些问题) Pyins

tangfreeze的博客 6万+

使用PyInstaller打包 Python 工程

引言:大模型是个好工具,尽管好多内容都是拼凑的,但是整理学到的就是自己的。若未安装,则根据使用系统情况进行安装。打包并保留控制台窗口(适用于命令行程序).exedist/打包 GUI 程序(隐藏控制台): 适用于 PyQt/Tkinter 等 GUI 程序,运行时不显示命令行窗口。使用--debug。

liuzhongsky的专栏 1125

使用 PyInstaller 的 spec 文件打包 Python 程序

使用 PyInstaller 的 spec 文件打包 Python 程序PyInstaller 是一个常用的工具,可以将 Python 程序打包成可执行文件,方便在没有安装 Python 解释器的环境中运行。PyInstaller 的 spec 文件是一种配置文件,可以用来自定义打包过程。本文将详细介绍如何使用 PyInstaller 的 spec 文件来打包 Python 程序。

ByteHackerX的博客 1313

使用pyinstaller打包多个python文件

一.需要打包的文件 这次需要打包的项目为Tkinter目录下的test3目录下的所有python文件,其中main.py为主文件。 二.打包流程 1.生成主函数对应的spec文件 命令:在test3路径下使用:pyi-makespec main.py 如下图已经生成main.spec文件。 2.修改spec文件:加入需要打包的所有python文件,同时确保以下两项包含该项目的路径 3.对spec文件进行pyinstaller安装 命令:pyinstaller...

Leo的博客 1万+

SAP BTP开发入门:从PaaS到CAP/UI5的30天学习路线

在云计算与数字化转型的大背景下,企业系统集成与云端扩展需求激增,传统的单点开发模式正面临深刻变革。PaaS(平台即服务)作为云原生的核心概念,将基础设施、开发环境与应用服务统一封装,为企业提供了灵活的扩展能力。SAP BTP正是SAP生态中的PaaS平台,它承载着系统集成、低代码开发、AI服务与数据管理,成为连接S/4HANA等核心业务系统与创新应用的桥梁。对于ABAP开发者而言,掌握BTP不仅是技能升级,更是应对从传统部署向云端订阅模式转型的必由之路。本文从平台基础出发,梳理BTP的核心服务与开发模型(如

weixin_31766003的博客 282

pyinstaller工具打包python项目详细教程

pyinstaller工具打包python项目成exe可执行程序

weixin_45863084的博客 1万+

基于PLC的图书馆机器人设计与仿真

本文设计了一种基于PLC的图书馆机器人系统,该系统能提升图书馆自动化管理水平,选用西门子S7-1200系列PLC作为核心控制单元,结合电机驱动、传感器采集以及超声波避障等技术,设计出机器人行走、图书识别与分拣的功能模块,系统借助条形码扫描模块获取图书信息,将其分析后与设定的存放位置做对比,精准达成图书的存取和归还。仿真结果显示,机器人执行任务时运动控制响应时间是0.35秒,避障成功率为98.3%,图书识别准确率高达99.4%,在控制系统方面,运用STEP7-MICRO/WIN软件编程,结合WINCC设计组态

weixin_44553616的博客 1924

SAP-PM设备模块-PM主数据之维护策略

预防性维护的一种计划方式,需要先建立维护策略什么情况下需要创建维护策略?

TRUIXIANG的博客 2569

Python中的图片打包与pyinstaller中的spec文件简介

一.Python中的图片打包 1.经过科学搜索后有以下几种打包方式: ①将图片转化为py文件中的变量,通过import该文件来生成需要的图片,使用后移除图片 (该方法可以通过库base64和wxpython实现) ②将图片放在同一目录下的文件夹中,随程序一起使用 ③使用工具对exe文件和图片进行二次打包 可能还有其他方式,在此只列取这几种   2.本人比较懒,选择的是较为方便好看的...

SCDS_Zyx的博客 2万+

深入解析FOC电流环PI参数整定:从理论到实践

本文深入解析了FOC(磁场定向控制)中电流环PI参数整定的核心原理与实践方法。文章从永磁同步电机模型出发,详细阐述了基于带宽与零极点对消的工程法及考虑逆变器延迟的二阶系统整定法两种经典策略,并提供了从理论计算到安全上电调试的完整步骤与常见问题解决方案,帮助工程师精准调校电机控制性能。

weixin_29164497的博客 445

Python使用总结之pyinstaller打包spec文件详解

是一个将Python应用程序打包成独立可执行文件的工具,它支持Windows、Mac OS X和Linux等多个平台。打包后的程序可以在目标系统上运行而无需Python解释器。假设我们有一个Python脚本example.pyexe = EXE(pyz,a.scripts,a.datas,[],upx=True,exe,a.datas,upx=True,在这个spec文件中,我们指定了额外的数据文件和隐藏导入模块,打包后的可执行文件名为。通过本文的介绍,我们详细了解了的spec。

载_酒i 6138

STM32 BOOTLOADER配置以及APP跳转实现(裸机)

Bootloader是硬件启动的引导程序,是运行操作系统的前提。在操作系统内核或用户应用程序运行之前运行的一段小代码。对硬件进行相应的初始化和设定,最终为操作系统准备好环境。APP就是我们的应用程序,经过硬件引导程序之后跳转到系统程序运行。

吻等离子的博客 3355

Python-自动化绘制股票价格通道线

创建更强大、更可靠的价格通道检测算法。

探索人工智能领域 947

Pyinstaller-Spec文件使用

PyInstaller 是一个用于将 Python 脚本打包成独立的可执行文件的工具。使用 PyInstaller,您可以将 Python 应用程序转换为可执行文件,而无需用户安装 Python 解释器或任何额外的库。PyInstaller库在使用上已经足够简单了, 提供了丰富的选项和配置参数,允许用户对打包过程进行定制,以满足不同的需求。

MARST.ZHANG的博客 6229

OpenClaw 2026.3.13 踩坑实录:飞书HTTP协议降级Bug与多版本回归问题汇总

摘要:OpenClaw v2026.3.13存在多个严重回归问题,包括飞书API调用协议意外降级为HTTP导致连接失败(#46100)、本地Gateway诊断矛盾(#45504)及设备配对CLI命令失效等。该版本发布流程本身也存在异常,被迫以v2026.3.13-1标签重新发布。建议飞书用户回退至v2026.3.8稳定版,其他用户谨慎升级。本文详细记录了各Bug现象、影响范围及临时解决方案,并梳理了飞书通道的"多版本回归史",指出其根源在于架构变迁和测试覆盖不足。最后提供了包含配置备份、

Maynor的博客 867

GUI打包工具Pyinstaller详细教程

python GUI在开发好之后,我们需要将其打包成exe文件,并使其不依赖python环境运行,这个时候需要用到pyistaller。

weixin_73953650的博客 3978

用「OpenClaw」打造新媒体运营神器:小红书/公众号全自动选题→创作→排版→发布全流程

对于新媒体运营的从业者来说,AI不是要取代运营人员,而是把他们从繁琐的重复劳动中解放出来,专注于更核心的内容策略、用户运营、品牌建设,这才是AI在传统行业落地的真正价值。这是最终输出可发布内容的核心智能体,我们通过「OpenClaw」的Prompt工程,结合不同平台的排版规范,实现了一键生成符合要求的排版,完全替代人工重复劳动。这套系统的落地,不是技术的炫技,而是真正用AI解决了新媒体运营的核心痛点:用自动化替代重复的人工劳动,用数据决策替代经验主义,用全闭环执行替代纸上谈兵的建议。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 197

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: python requests请求得到乱码解决方法
return_rebound
博客等级 码龄4年 472粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值