1.简单打包:将Python程序打包成exe文件
(1)准备好对应的py文件——星空.py
from turtle import *
from random import random, randint
screen = Screen()
width, height = 800, 600
screen.setup(width, height)
screen.title("两情若是久长时,又岂在朝朝暮暮")
screen.bgcolor("black")
screen.mode("logo")
screen.delay(0) # 这里要设为0,否则很卡
t = Turtle(visible=False, shape='circle')
t.pencolor("blue")
t.fillcolor("white")
t.penup()
t.setheading(-90)
t.goto(width / 2, randint(-height / 2, height / 2))
stars = []
for i in range(200):
star = t.clone()
s = random() / 3
star.shapesize(s, s)
star.speed(int(s * 10))
star.setx(width / 2 + randint(1, width))
star.sety(randint(-height / 2, height / 2))
star.showturtle()
stars.append(star)
while True:
for star in stars:
star.setx(star.xcor() - 3 * star.speed())
if star.xcor() < -width / 2:
star.hideturtle()
star.setx(width / 2 + randint(1, width))
star.sety(randint(-height / 2, height / 2))
star.showturtle()
运行效果:

(2)安装pyinstaller
pip install pyinstaller
(3)打包成exe文件
pyinstaller.exe -F -i 星空.ico 星空.py -w
- 参数-F:打包成一个exe文件
- 参数-i:自定义图标(星空.ico)
- 参数-w:打开exe程序不弹出dos命令窗口

打包完成后的运行效果:

2.带图片打包:将Python程序打包成exe文件
(1)准备好对应的py文件——图片打包.py
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
root.title('我的窗口')
lab1 = Label(root, text='春野樱', anchor='nw')
lab1.pack()
photo1 = ImageTk.PhotoImage(file=r'小樱.png')
photo2 = ImageTk.PhotoImage(file=r'小樱.png')
imgLable1 = Label(root, image=photo1)
imgLable2 = Label(root, image=photo2)
imgLable1.pack(side=RIGHT)
imgLable2.pack(side=RIGHT)
mainloop()
运行效果:

(2)当前py文件所在目录DOS窗口输入pyi-makespec 图片打包.py
将图片引用路径写为完整路径
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
root.title('我的窗口')
lab1 = Label(root, text='春野樱', anchor='nw')
lab1.pack()
photo1 = ImageTk.PhotoImage(file=r'D:\Python Project\小樱.png')
photo2 = ImageTk.PhotoImage(file=r'D:\Python Project\小樱.png')
imgLable1 = Label(root, image=photo1)
imgLable2 = Label(root, image=photo2)
imgLable1.pack(side=RIGHT)
imgLable2.pack(side=RIGHT)
mainloop()