今天介绍我们学习过程中安装的第一个第三方库Pyinstaller。其使用方法实在命令行窗口或者终端执行命令,以实现相应的操作或功能。
pyinstaller库(将源代码转换为可执行文件):
该库的功能就是将源代码文件.py转换为可执行文件.exe(Windows)或.pkg(macOS)。
1、安装方法:
在命令行窗口输入:pip install Pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
这里我使用了国内镜像站进行安装。
显示如图successfully就说明安装成功。

打包一个猜数字的小游戏:
2、猜数字游戏代码:
import random #导入随机库
b = random.randint(0, 10) #获取十以内的一个随机整数
while True:
try:
a=int(input("请输入一个十以内的整数:"))
except:
print("格式错误") #异常捕获,和之前博客中判断时辰的原理一样,如果输入的不是数字会在int强制类型转换时发生错误,从而进入except模块
if a>b:
print("大了")
elif a<b:
print("小了")
else:
print("猜对了")
c=input("输入y进入下一轮,输入n结束:")
if c=="y":
b = random.randint(0, 10) #进入下一轮游戏,重新获得一个随机数字
continue
elif c=="n":
break
大家可以自己尝试写一个猜数字游戏的代码,相信对各位佐助来说是易如反掌的。
3、打包:
注意在文件夹的特定位置输入cmd就会进入相应的命令行窗口,打包后的文件也会存在相应的路径。这里我在我d盘的python项目文件打开cmd。
打包猜数字.py文件,格式:Pyinstaller 文件路径:
1、单文件打包
打包的位置:
2、多文件打包
即不需要使用--onefile参数,默认的打包方法

打包后的.exe文件在dist文件夹中。
运行:
各位佐助到这里就完成了打包成.exe的可执行文件,可以把打包好的小游戏发给自己的兄弟们玩一玩。
再送兄弟姐妹们一段代码,可以打包分享给自己的好朋友:
import tkinter as tk
import random
import time
from tkinter import font
# 祝福文案(可自行添加)
BLESSINGS = [
"考研上岸!一战成硕~",
"天冷加衣,别冻着呀",
"多喝热水,照顾好自己",
"逢考必过,万事顺意",
"平安喜乐,天天开心",
"学业进步,前程似锦",
"身体健康,无病无灾",
"锦鲤附体,好运爆棚"
]
# 随机颜色(RGB转十六进制,tkinter支持的格式)
def random_color():
r = random.randint(50, 200)
g = random.randint(50, 200)
b = random.randint(50, 200)
return f'#{r:02x}{g:02x}{b:02x}' # 转成十六进制颜色码
# 文字泡类
class TextBubble:
def __init__(self, canvas, width, height):
self.canvas = canvas
self.width = width
self.height = height
# 随机属性
self.text = random.choice(BLESSINGS)
self.color = random_color()
self.size = random.randint(14, 20) # 文字大小
self.x = random.randint(50, width - 150) # 水平位置
self.y = height + 20 # 初始在屏幕底部外
self.speed = random.uniform(0.5, 2) # 上升速度
# 创建文字标签
self.font = font.Font(size=self.size, weight='bold')
self.id = canvas.create_text(
self.x, self.y,
text=self.text,
fill=self.color,
font=self.font,
tags='bubble'
)
def update(self):
# 向上移动
self.y -= self.speed
self.canvas.move(self.id, 0, -self.speed)
# 超出屏幕顶部则删除
if self.y < -50:
self.canvas.delete(self.id)
return False
return True
# 主窗口
class BlessingWindow:
def __init__(self, root):
self.root = root
self.root.title("来自朋友的祝福~")
self.root.geometry("800x600") # 窗口大小
self.root.resizable(True, True) # 支持缩放
# 创建画布
self.canvas = tk.Canvas(root, bg='white')
self.canvas.pack(fill=tk.BOTH, expand=True)
# 文字泡列表
self.bubbles = []
self.max_bubbles = 50 # 最大数量
self.spawn_interval = 0.2 # 生成间隔(秒)
self.last_spawn = time.time()
# 开始动画
self.animate()
def animate(self):
# 定时生成新文字泡
now = time.time()
if now - self.last_spawn > self.spawn_interval and len(self.bubbles) < self.max_bubbles:
width = self.canvas.winfo_width() or 800
height = self.canvas.winfo_height() or 600
self.bubbles.append(TextBubble(self.canvas, width, height))
self.last_spawn = now
# 更新所有文字泡
self.bubbles = [b for b in self.bubbles if b.update()]
# 循环动画
self.root.after(30, self.animate) # 30毫秒刷新一次
# 运行程序
if __name__ == "__main__":
root = tk.Tk()
app = BlessingWindow(root)
root.mainloop()
效果:
实际上项目中我们并不使用pyinstaller,我们以后在公司中开发用的一般是docker:
docker 容器镜像。整体项目打包,把整个环境打包到服务器。相当于把电脑搬到服务器。
PyInstaller是一款多平台的Python程序打包工具,核心作用是将Python脚本及其依赖(包括Python解释器、库文件等)打包为独立的可执行文件,让用户无需安装Python环境即可运行程序。
一、核心特点 1. **跨平台支持**: 适配Windows、macOS、Linux等主流系统(但非跨编译器,需在目标系统上打包,例如打包Windows程序需在Windows环境中操作)。 2. **自动处理依赖**: 会递归分析脚本的`import`语句,自动收集所需的库、模块,无需手动整理依赖。 3. **灵活的打包模式**: - 默认(`--onedir`):生成包含exe和依赖文件的文件夹; - 单文件模式(`--onefile`):将所有内容嵌入单个exe(运行时自动解压到临时目录)。 4. **功能扩展**: 支持隐藏控制台窗口(`--windowed`)、添加图标(`--icon`)、压缩体积(结合UPX工具)、打包外部资源文件(`--add-data`)等。
二、适用场景 - 分发Python程序给无Python环境的用户; - 打包GUI应用(如Tkinter、PyQt程序); - 构建企业内部部署脚本或工具。
三、基本使用流程 1. 安装:`pip install pyinstaller`; 2. 打包:在脚本目录执行`pyinstaller 脚本名.py`(默认生成多文件包); 3. 获取结果:打包后的程序位于`dist`文件夹中。 它是Python生态中最常用的打包工具之一,能有效解决Python程序的分发难题。
1165

被折叠的 条评论
为什么被折叠?



