Python打包exe文件——pyinstaller模块

Python打包exe文件——pyinstaller模块

目录

  • Python打包exe文件——pyinstaller模块
    • 介绍
    • 安装
    • 打包
      • 文件夹模式打包
      • 单文件模式方式
      • SPEC打包(推荐)

介绍

当要在没有python环境的设备上运行python文件时就可以将环境变量全部封装成exe文件发送给对方,此时就可以使用打包模块pyinstaller

安装

pip install pyinstaller

打包

cd到需要打包的目录下

image-20240403144344166

文件夹模式打包

Pyinstaller的默认打包方式,生成的是一个文件夹,包含builddistfileren.spec_pycache_

  • build文件夹用于存储日志文件
  • dist文件夹储存可执行文件即相关依赖
  • __pycache__文件夹里是Python版本信息
  • fileren.spec打包的配置文件,可以配置依赖资源

除了dist文件夹,其它都可以删除
这种模式下,需要把整个dist文件夹发给别人才能运行

Pyinstaller -F Test.pyw

单文件模式方式

该方式只适用于单文件打包,如果你有多个py文件则不能用,打包后只会产生一个dist文件,里面也只有一个执行文件,这个执行文件直接发给别人即可运行

Pyinstaller -F Test.pyw

SPEC打包(推荐)

这种打包方式的好处就是不用每次都重新指定文件路径,只需将.spec配置文件进行读取就能生成新的exe文件

Pyinstaller Test.spec

不管使用哪种打包方式,在你目录下都会生成一个spec文件

大致内容如下

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


a = Analysis(
    ['Test.pyw'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    [],
    name='Test',
    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,
)

.spec 文件中各个参数的含义如下:

参数含义
Analysis分析器,用于指定分析的目标文件、路径等
pathex指定搜索路径
binaries二进制文件列表
datas数据文件列表
hiddenimports隐藏导入模块列表
hookspathHook 脚本路径
hooksconfigHook 配置
runtime_hooks运行时 Hook
excludes排除模块列表
noarchive是否生成归档文件
PYZ包装器,用于生成 PYZ 文件
EXE生成可执行文件的配置参数
pyzPYZ 文件
a.scripts脚本列表
a.datas数据文件列表
name生成的可执行文件名
debug是否生成调试信息
bootloader_ignore_signals是否忽略启动器信号
strip是否剥离符号信息
upx是否使用 UPX 压缩
upx_exclude排除不压缩的文件
console是否为控制台应用程序
disable_windowed_traceback禁用窗口式回溯
argv_emulation是否模拟命令行参数
target_arch目标架构
codesign_identity签名标识
entitlements_file权限文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/515334.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Python实现基本的线性回归模型

线性回归是一种简单而强大的统计学方法,用于预测一个因变量与一个或多个自变量之间的关系。在本文中,我们将使用Python来实现一个基本的线性回归模型,并介绍其原理和实现过程。加粗样式 什么是线性回归? 线性回归是一种用于建立…

upload-labs训练平台

GitHub:GitHub - Tj1ngwe1/upload-labs: 一个帮你总结所有类型的上传漏洞的靶场 把下好的文件夹之间拖入到小皮的WWW目录下就可以之间访问网址使用了 目录 Pass-01(前端JS的绕过) (1)抓包绕过 (2)在前端绕过 Pass-02(content-type绕过)…

kettle快速入门教程

探索数据的深邃奥秘,引领你踏入数据处理的殿堂!Kettle(Pentaho Data Integration)的神奇魔力,将为你解锁数据世界的无限可能。本人基于公司业务实战整理的50篇精华Kettle系列文章,是你的密钥,让…

【大模型应用篇2】提示词实践-短剧文案

在上节课《【大模型应用篇1】学会对模型念咒语》带大家一起学习了提示词工程,我相信大部分朋友学完之后,还是有懵懂的,这节课带大家实操一下提示词的应用场景,现在短剧的创作很火,好看的短剧内容一定不会差&#xff0c…

java自动化测试-03-05java基础之字符串

1、字符串的定义 String是变量类型,表示字符串类型 name是给这个变量起的名字,这个是可以随意取的,只要不是java的关键字就可以了 表示赋值,右边的的内容表示 变量值,对字符串变量进行 赋值,需要用双引号…

idea建多级目录出现问题,报错找不到xml文件,如何解决?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

芯片工程系列(6)Chiplet封装

0 英语缩写 chiplet是一个合成词,由chip和let两个单词组合而成。它的意思是“小芯片”,通常指的是一种集成电路中的小型芯片系统级封装(System in a Package,SiP)系统级芯片(System on a Chip,…

【并发编程】CountDownLatch

📝个人主页:五敷有你 🔥系列专栏:并发编程 ⛺️稳中求进,晒太阳 CountDownLatch 概念 CountDownLatch可以使一个获多个线程等待其他线程各自执行完毕后再执行。 CountDownLatch 定义了一个计数器,…

4.7 数组的读取和写入,type指令和一些杂项

4.7 数组的读取和写入,type指令和一些杂项 可以通过word ptr将db转为dw,然后按照dw的方式去存储数据 1. 段名也可以把其地址赋给变量 assume cs:codesg,ds:data,ss:stack data segmentdb 12,34dw 12,34db hello world data ends stack segmentdb 10 dup…

YOLOv5改进 | 低照度检测 | 2024最新改进CPA-Enhancer链式思考网络(适用低照度、图像去雾、雨天、雪天)

一、本文介绍 本文给大家带来的2024.3月份最新改进机制,由CPA-Enhancer: Chain-of-Thought Prompted Adaptive Enhancer for Object Detection under Unknown Degradations论文提出的CPA-Enhancer链式思考网络,CPA-Enhancer通过引入链式思考提示机制,实现了对未知退化条件下…

Shell GPT:直接安装使用的chatgpt应用软件

ShellGPT是一款基于预训练生成式Transformer模型(如GPT系列)构建的智能Shell工具。它将先进的自然语言处理能力集成到Shell环境中,使用户能够使用接近日常对话的语言来操作和控制操作系统。 官网:GitHub - akl7777777/ShellGPT: *…

OpenCV4.9开发之Window开发环境搭建

1.打开OpenCV所在github地址 2.点击opencv仓库,进入仓库详情,点击右下方的OpenCV 4.9.0进入下载页面 3.点击opencv-4.9.0-windows.exe下载 开始下载中... 下载完成 下载完成后,双击运行解压,默认解压路径,修改为c:/

企业家升维认知:引领企业持续发展的关键

一、引言 在快速变化的时代背景下,企业家面临着前所未有的挑战与机遇。新东方教育科技集团董事长俞敏洪曾深刻指出:“企业家本身要不断升维自己的认知,才能带领企业持续发展。”这句话不仅揭示了企业家认知升维的重要性,也为我们…

JRT简化开发环境

JRT是完全前后端分离的项目,实际工程是逻辑上完全前后端分离,代码层级和工程是不离的。这样就可以做到一键启动,同时又有分离的好处。开始页面后缀都沿用aspx,最开始考虑过修改后缀为html,当时觉得搞aspx也不错&#x…

Qt 的发展历史、现状与启示

Qt 最早在1991年由挪威的两位程序员 Eirik Chambe-Eng 和 Haavard Nord 开发,他们在1994年创立 Trolltech 公司(奇趣科技)正式经营软件业务。Qt 的第一个公众预览版于1995年面世,之后在2008年被诺基亚收购;2011年到201…

【Oracle篇】expdp/impdp高效完成全部生产用户的全库迁移(第四篇,总共四篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在扩展大数据方向的知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣️❣️…

SEO必备,网站词库拓展建设

我以前做网站是没有词库这个概念的,今天恰巧和站长交流的时候提到了词库的建设,大致问题就是如何增加词库。其实我也不是特别明白,只是听说使用长尾关键词挖掘然后拓展,至于怎么用,也没有聊到。 所以我的求知欲让我去…

Spring Boot:Web开发之视图模板技术的整合

Spring Boot 前言Spring Boot 整合 JSPSpring Boot 整合 FreeMarkerSpring Boot 整合 ThymeleafThymeleaf 常用语法 前言 在 Web 开发中,视图模板技术(如 JSP 、FreeMarker 、Thymeleaf 等)用于呈现动态内容到用户界面的工具。这些技术允许开…

CSS设置网页背景

目录 概述: 1.background-color: 2.background-image: 3.background-repeat: 4.background-position: 5.background-attachment: 6.background-size: 7.background-origin: 8.background-…

SAP_MM模块-无价值物料管理实现思路

无价值物料管理实现思路 业务背景一: 对于工具类的物料,本来想通过无物料号,收货时直接消耗在成本中心的方式来处理,这样,工程部和采购部都比较方便。 但财务部提出这部分工具物料还需要进行库存管理,但…