学习笔记(42):Python实战编程-pyinstaller程序打包

 

将程序打包可以使得所有Windows带有python虚拟机的电脑进行使用,打包的内容有代码加外部资源(如logo图片等)

步骤:
1)创建程序的代码
2)生成配置文件——用于获得打包的资源,将资源保存在运行程序的电脑的临时文件中,这里临时文件是resources文件夹


3)修改python源代码:因为此时的程序的资源目录resources不一定在当前项目的目录下,而是在打包后再次运行时一定要将资源解压缩到临时文件当中


4)创建配置文件:因为程序打包需要引用资源文件,因此必须手工地对资源的路径进行定义,就需要根据打包程序生成一个.spec配置文件,
pyi-makespec -F *.py给定要打包的程序

 


5)编辑spc文件,定义我们需要使用资源路径打开.spec文件——找到datas=[],项,修改为data = [("resources","resources")]里面放的是一个元组


6)程序打包:pyinstaller -F *.spec


7)若没有则使用pyinstaller -F *.py,
8)打包结束后就会有*.exe文件了

 

 

'''
    将程序打包可以使得所有Windows带有python虚拟机的电脑进行使用,打包的内容有代码加外部资源(如logo图片等)

步骤:
1)创建程序的代码
2)生成配置文件——用于获得打包的资源,将资源保存在运行程序的电脑的临时文件中,这里临时文件是resources文件夹
3)修改python源代码:因为此时的程序的资源目录resources不一定在当前项目的目录下,而是在打包后再次运行时一定要将资源解压缩到临时文件当中
4)创建配置文件:因为程序打包需要引用资源文件,因此必须手工地对资源的路径进行定义,就需要根据打包程序生成一个.spec配置文件,
pyi-makespec -F *.py给定要打包的程序
5)编辑spc文件,定义我们需要使用资源路径打开.spec文件——找到datas=[],项,修改为data = [("resources","resources")]里面放的是一个元组
6)程序打包:pyinstaller -F *.spec
7)若没有则使用pyinstaller -F *.py,
8)打包结束后就会有*.exe文件了
'''

import tkinter,os#导入创建窗体的相关模块
import sys#导入与操作系统交互的模块

def get_resource_path(relative_path):#利用此函数实现资源路径的定位
    if getattr(sys,"frozen",False):
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")#获得当前目录路径
    return os.path.join(base_path,relative_path)#获得绝对路径

# image_path = image_path = r'C:\Users\jinlin\Desktop\python_further_study\GUI编程\resources'  + os.sep + 'linlianqin.gif'#只支持gif格式的图片

'''
下面这个语句提示无法找到路径提示错误,这里特别需要注意:
1)修改代码后需要重新按照以上步骤进行,尤其不能忘记了修改配置文件的datas
2)必须得先pyi-makespec -F *.py指定要打包的程序,再修改配置文件,再pyinstaller -F *.spec程序打包
'''

print(get_resource_path(os.path.join("resources","linlianqin.gif")))
image_path =  get_resource_path(os.path.join("resources","linlianqin.gif"))#修改图片的路径,从上面定义的资源路径中获取图,get_resource_path(os.path.join("临时资源文件夹","图片名称"))

class Mainwindow():#创建窗口类
    def __init__(self):
        root = tkinter.Tk()  # 创建主体窗口
        root.title('linlianqin')  # 定义窗体的名字
        root.geometry('500x500')  # 定义窗体的初始大小
        root.maxsize(1200, 1200)  # 设置窗口可以显示的最大尺寸

        #---------------以下是对按钮的设置---------------
        photo = tkinter.PhotoImage(file = image_path)#设置按钮的外观,这里是将图片设置为按钮的外观
        button = tkinter.Button(root,text = 'linlianqin',image = photo,compound = 'bottom')#创建按钮
        button.pack()#显示按钮

        root.mainloop()#显示窗口

if __name__ == '__main__':
    Mainwindow()#将窗体类实例化

 

exe打包器是一种将Python程序打包成可执行文件的工具。在Python中,一个常用的GUI库是Tkinter,而pyinstaller则是将Python程序打包成exe文件的插件。通过使用Python-tkinter-pyinstaller项目之exe打包器,我们可以将使用Tkinter编写的Python程序打包成一个独立的可执行文件,方便分享和使用。 Python-tkinter-pyinstaller项目之exe打包器的使用非常简单。首先,我们需要安装pyinstaller插件。可以通过使用pip命令来安装,具体的安装命令如下: ``` pip install pyinstaller ``` 安装完成后,我们就可以使用pyinstaller打包Python程序了。只需要使用pyinstaller命令,并指定要打包Python文件即可。例如: ``` pyinstaller myscript.py ``` 在执行上述命令后,pyinstaller会自动将Python程序打包成一个exe文件,并生成与程序相关的其他文件。这个exe文件就是我们需要的可执行文件,可以直接在Windows系统中运行。 使用Python-tkinter-pyinstaller项目之exe打包器的好处是,它可以将所有的依赖文件一起打包,使得我们的Python程序可以独立运行,无需安装Python解释器和相关库。这样可以方便地将程序分享给其他人,而无需担心他们是否安装了Python环境。 总之,Python-tkinter-pyinstaller项目之exe打包器是一个非常实用的工具,可以将使用Tkinter编写的Python程序打包成一个独立的可执行文件,方便分享和使用。它简单易用,功能强大,是Python GUI开发中的重要工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值