pyinstaller入门小例子

news2024/10/7 12:20:53

【问题提出】
我们知道C++编译之后会直接生成可执行文件,其他人电脑上即使没有安装编译器,也可以直接执行。
而python是一门解释性语言,不能像C++一样直接编译。所以一个自然的想法就是,将python程序及其解释器一起打包,这样从外界看来,它们整体就是一个可执行文件了。

pyinstaller这个工具就是用来做这个事。

【具体使用】:
1、安装pyinstaller

pip install pyinstaller

2、编写我们的python程序。
为了达到演示效果,编写一个弹窗程序。
代码如下:

import tkinter as tk

# 创建主窗口
root = tk.Tk()
root.title("Hello World Window")  # 设置窗口标题

# 创建标签控件用于显示文本
label = tk.Label(root, text="Hello world!", font=("Helvetica", 24))
label.pack(padx=200, pady=200)  # 设置内边距

# 进入主循环
root.mainloop()

代码效果:
在这里插入图片描述

3、打包

pyinstaller hello.py

在使用 PyInstaller 打包时,会生成一些文件夹和文件,这些文件夹和文件有不同的作用和含义:

build 文件夹: 在 PyInstaller 打包过程中,临时的构建文件会存储在 build 文件夹中。这些文件是生成可执行文件的中间文件,通常在最终生成可执行文件之后可以删除。build 文件夹中可能包含编译后的字节码、资源文件以及其他中间文件。

dist 文件夹打包完成后,生成的可执行文件(以及其他相关文件)将被放置在 dist 文件夹中。这是 PyInstaller 默认输出生成的可执行文件的目录。你可以在这个文件夹中找到最终的可执行文件,可以将其分发给其他用户。

hello.py: 这是你要打包的 Python 脚本文件,其中的 “hello” 是你的脚本的文件名。在 PyInstaller 打包过程中,它将会被转换成可执行文件。

hello.spec: 当你运行 PyInstaller 打包命令时(例如 pyinstaller hello.py),PyInstaller 会生成一个 .spec 文件,其中包含了有关打包过程的配置信息。你可以编辑这个 .spec 文件来自定义打包过程中的参数、设置和依赖项。

综合起来,build 文件夹包含了打包过程中的临时文件,dist 文件夹包含了最终生成的可执行文件,而 hello.py 是你要打包的原始 Python 脚本文件。如果你需要更多的打包控制,你可以编辑 hello.spec 文件来进行自定义配置。在打包完成后,你可以将 dist 文件夹中的可执行文件分发给其他用户或在需要的计算机上运行。


打包结果截图:
在这里插入图片描述
直接就可以运行hello了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

将符号分隔的文本文件txt转换为excel的实现

文本文件如下: 现在不好处理,打算将其转换为excel,其中通过冒号分割:line.split(":") main方法如下: public static void main(String[] args) {String textFilePath "D:\\zoom\\期刊\\J_Medline\\J_…

【力扣】62. 不同路径 <动态规划>

【力扣】62. 不同路径 一个机器人位于一个 m m m x n n n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条…

学习pytorch8 土堆说卷积操作

土堆说卷积操作 官网debug torch版本只有nn 没有nn.functional代码执行结果 B站小土堆视频学习笔记 官网 https://pytorch.org/docs/stable/nn.html#convolution-layers 常用torch.nn, nn是对nn.functional的封装,使函数更易用。 卷积核从输入图像左上角&#xf…

generative-model [ From GAN to WGAN ]

目录 Kullback–Leibler and Jensen–Shannon Divergence Generative Adversarial Network (GAN) What is the optimal value for D? What is the global optimal? What does the loss function represent? Problems in GANs Hard to achieve Nash equilibrium Low …

【Vue】集成百度地图

Vue 集成 百度地图 1、获取百度地图 ak 密钥 2、登录网址 https://lbsyun.baidu.com/ 3、注册百度地图开放平台账号,填写认证信息,并且创建应用 安装 npm install vue-baidu-map --savemain.js import BaiduMap from vue-baidu-map;Vue.use(BaiduM…

进程间通信之System V 共享内存

文章目录 一、共享内存 进程具有独立性,因此进程间通信的前提是两个进程能看到同一份资源 一、共享内存 在内存中申请一块空间,并将起始地址分别映射到两个进程的虚拟地址空间上,便可以让两个进程看到同一份资源 操作系统为了管理共享内存&…

DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例

DP读书:不知道干什么就和我一起读书吧 为啥写博客:好处一:记录自己的学习过程优点二:让自己在各大社群里不那么尴尬推荐三:坚持下去,找到一个能支持自己的伙伴模版:鲲鹏软件构成硬件特定软件1. …

五、工厂方法模式

一、什么是工厂方法模式 工厂方法模式是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。   工厂方法模式的主要角色如下。 抽象工厂(Abstract Factory):提…

USB集线器设计

参考电路 参考1 基于FE1.1S四路USB集线器设计 基于FE1.1S四路USB集线器设计 - 嘉立创EDA开源硬件平台 (oshwhub.com)https://oshwhub.com/beibu/ji-yufe1-1s-si-luusb-ji-xian-qi-she-ji 参考2 C479658_LCYZB-SL2.1A USB集线器验证板-V1 C479658_LCYZB-SL2.1A USB集线器验…

视频导出文件太大如何变小?缩小视频这样做

作为一名视频制作爱好者,我们经常需要导出视频文件,但是,有时候我们会发现导出的视频文件太大,给上传和分享带来很大的不便。那么,如何将视频文件变小呢?下面将为你介绍三个方法,让你轻松解决视…

【python】之time库,创建数字时钟!

今天我们来看一下time库的一个使用,提到time库,大家应该很熟悉吧,作为python的内置库,无需安装,直接导入使用即可。 一.time库 常用函数介绍 1.time.time( ):返回当前时间的时间戳 import timetime.time(…

5分钟快速搭建!这款颜值爆表的数据可视化工具,你值得拥有!

最好的数据可视化工具是什么? 没有最好,只有最适合的。不过,想要找一个优秀的数据可视化工具,可以从下面几点进行评估: (1)易用性: 直观的界面可以帮助新手快速上手,并…

知了汇智2023夏令营集训活动圆满收官,产教融合助力高素质人才培养

当前,新一轮科技革命和产业变革深入发展,新产业、新业态、新技术的涌现不断带动了对互联网人才、IT技术人才、信息安全人才需求的快速增长,在这一背景下,大学生需要提升专业应用技能和职场竞争力,以满足企业对人才日益…

Blender界面学习03 原点、鼠标所在位置的缩放与旋转

物体的坐标原点可以移动 放大缩小时默认是屏幕中央,修改为鼠标在哪儿就缩放哪儿 默认旋转时围绕屏幕的中心 可以修改为指定对象旋转

Matlab论文插图绘制模板第110期—水平双向柱状图

在之前的文章中,分享了很多Matlab柱状图的绘制模板: 进一步,再来看一种特殊的柱状图:水平双向柱状图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下…

vscode搭建springboot开发环境

前言 idea好用到但是收money,eclipse免费但是界面有点丑,所以尝试使用vscode开发springboot 提前准备 安装jdk,jdk需要大于11 安装vscode 安装maven 安装插件 主要是下面的插件 Extension Pack for JavaSpring Boot Extension PackDepe…

一个可以使用的聚合登录系统源码,可以实现一站式社会化账号登录。

简单测试了一下,可以跑起来,这个代码可以使用,但关键代码都加密了,所以使用时需要慎重。本来这种加密的垃圾代码我是不分享的,但有些同学还是需要参考一下程序设计思路,所以免费分享给大家研究学习使用。 …

走进低代码平台| iVX-困境之中如何突破传统

前言: “工欲善其事,必先利其器”,找到和使用一个优质的工具平台,往往会事半功倍。 文章目录 1️⃣认识走近低代码2️⃣传统的低代码开发3️⃣无代码编辑平台一个代码生成式低代码产品iVX受面性广支持代码复用如何使用? 4️⃣总结…

hive下库里有表数据,删不了库的解决办法

hive下库里有表数据,删不了库的解决办法 报错:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database db_hive2 is not empty. One or more tables exist.) 使用CASCADE &…

中欧财富:分布式数据库的应用历程和 TiDB 7.1 新特性探索

作者:张政俊 中欧财富数据库负责人 中欧财富是中欧基金控股的销售子公司,旗下 APP 实现业内基金品种全覆盖,提供基金交易、大数据选基、智慧定投、理财师咨询等投资工具及服务。中欧财富致力为投资者及合作伙伴提供一站式互联网财富管理解决方…