将程序打包可以使得所有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._MEIPASSelse: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()#将窗体类实例化

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

  1. 学习笔记(53):Python实战编程-Checkbutton

    立即学习:https://edu.csdn.net/course/play/19711/343116?utm_source=blogtoedu 复选框Checkbutton:与单选框是相对的,一些用法 ...

  2. 学习笔记(58):Python实战编程-Combobox

    立即学习:https://edu.csdn.net/course/play/19711/343121?utm_source=blogtoedu 1.下拉列表Combobox:与Listbox相比,下拉 ...

  3. 学习笔记(57):Python实战编程-Treeview

    立即学习:https://edu.csdn.net/course/play/19711/343120?utm_source=blogtoedu 1.树状结构Treeview:分为树状折叠式列表和列表显 ...

  4. 学习笔记(55):Python实战编程-Scrollbar

    立即学习:https://edu.csdn.net/course/play/19711/343118?utm_source=blogtoedu 1.滚动条ScrollBar: 当列表内容项的内容过多时 ...

  5. 学习笔记(54):Python实战编程-Scale

    立即学习:https://edu.csdn.net/course/play/19711/343117?utm_source=blogtoedu 1.滑块组件Scale: 用于定义一定范围的区间,如音量 ...

  6. 学习笔记(52):Python实战编程-Radiobutton

    立即学习:https://edu.csdn.net/course/play/19711/343115?utm_source=blogtoedu 单选钮:Radiobutton 1)相对于大部分组件而言 ...

  7. 学习笔记(51):Python实战编程-ListBox

    立即学习:https://edu.csdn.net/course/play/19711/343113?utm_source=blogtoedu listbox 知识点: 1)创建listbox: se ...

  8. 学习笔记(49):Python实战编程-place布局

    立即学习:https://edu.csdn.net/course/play/19711/343111?utm_source=blogtoedu 1.place布局: 1)最灵活的布局方式,是根据坐标点 ...

  9. 学习笔记(48):Python实战编程-grid布局

    立即学习:https://edu.csdn.net/course/play/19711/343110?utm_source=blogtoedu grid布局:根据表结构进行的布局,索引为0行0列开始, ...

最新文章

  1. Simple NHibernate Architecture[from]
  2. java ldap 登陆AD域 查找某个帐号 查找某个组织单位
  3. C#字符串二进制互换
  4. Matlab Robotic Toolbox V9.10工具箱(六):puma560 动力学建模与仿真
  5. Jenkins中安装Role-based Authorization Strategy插件来实现用户角色权限管理
  6. java解析xml实例_在java中使用dom解析xml的示例分析
  7. vue 为全局变量赋值_vue设置全局变量和修改
  8. C语言-动态内存管理
  9. Nginx常用命令有哪些?
  10. 求解一元一次方程C语言,问一道算法题目(解一元一次方程的问题)
  11. memcache面试
  12. 产业链人士:台积电将同设备及原材料供应商谈判,希望明年降价15%
  13. ubuntu下安装 Source insight
  14. 【答疑】对象存储OSS常见问题解答(SDK类2)
  15. ffmpeg 将拆分的数据合成一帧_FFMPEG 视频分割和合并
  16. android图形开发工具,Android开发实现的几何图形工具类GeometryUtil完整实例
  17. 华三 h3c ospf配置
  18. 常微分二阶线性齐次微分方程的通解推导
  19. mate桌面暗色调超好看的配置
  20. 2019数据结构考研复习指导习题代码(王道论坛)

热门文章

  1. Web开发编程实用手册
  2. 浅谈 Vue 项目优化
  3. java 线程之线程状态
  4. 新浪微博第三方登陆重定向错误23123
  5. spring boot的多环境部署
  6. numpy和pandas的基础索引切片
  7. 2019 GUDT RC 2 Problem C(题解)
  8. Struts2中文件上传下载实例
  9. 简单实现KeyChain实例
  10. uni-app 组件传值