关于打包
本教程以Mac用户为主,win用户可以学习里面的方法,方法是通用的有些软件不通用!
只要你仔细耐心看完!基本上pyinstaller不会有什么问题!实用型的教程!!!
我们使用编译软件写好程序后,想让这个程序脱离当前的本机环境后依旧能独立运行;我们也能将这个程序在没有配置环境的电脑当中运行,这个时候我们就需要使用打包工具来对我们的程序进行打包
在windows操作系统中可执行文件是.exe
在Mac OS操作系统中可执行文件有.app .dmg .pkg
注意:在Mac OS操作系统中我们运行.app文件即可,如果想制作成软件则需要打包为.pkg或者.dmg
windows打包操作我就不多做讲解了,因为在下面的讲解中,打包完会自动生成exe可执行文件,在Mac中我会把.app和.pkg打包方法写在下面,pkg会引导用户安装,我觉得比较实用!
Mac我们打包的流程是先打包成为.app文件,才能再制作成.pkg文件
win打包完成就生成了exe
首先我们先将程序打包,这里我们使用Pyinstaller模块先将程序包含着程序环境进行打包,这样我们可以保证这个可执行文件在一个没有安装环境的计算机中也能正常使用,让我们的程序可以独立运行
安装Pyinstaller
pip install pyinstaller
Pyinstaller打包成可执行文件
-w 只对windows有效,不使用控制台。
-i 设置好看的ico格式的图标,加上该参数,指定图标路径。
这里比较重要!
这一步是基础!大家一定看懂!后面的很多步骤都是在这个步骤的基础上衍变!
我们先讲没有照片资源的打包!
建议大家使用Anaconda创建虚拟环境,根据自己的程序,需要什么包安装什么包,因为PyInstaller 默认会将所有依赖项打包到生成的可执行文件中,使其变得相对较大。
首先使用cd指令进入到当前项目的位置(就是跟你py文件同一个目录下)才能进行打包!
pyinstaller --name=your_name your_script.py
--name=your_name 生成可执行文件的名字,把your_name替换成你的名字
your_script.py 替换成你要打包的python文件
会在当前目录下生成一个dist和build文件夹,dist就是我们的可执行文件了!
mac找到.app文件运行
win找到.exe文件运行
多个.py打包教程
看上一步!就是把两个python文件名都写上!
两个文件名之间有????格!
pyinstaller --name=your_name your_script.py your_script.py
添加可执行文件的图标
首先我们要找一个图当作我们的图标
给大家推荐一个网站:即时设计 - 可实时协作的专业 UI 设计工具
大家登录一下这个网站,然后进到我们的资源广场
然后搜索图标,找一个自己喜欢的点进去
点击右上角使用,会跳转到编辑器中
选择一个自己喜欢的图标点击它会出来一个选择框
我们看右下角的菜单,有个导出选项,我们选中喜欢的图标以后直接导出即可
我们使用Image2Icon软件对导出的照片进行转换,转换为icns格式,打包的时候才能打包成可执行文件的图标(已将资源上传到文章资源)
打开软件将要转换到图标拖入!
样式自己大家在右边选择,样式都有提示,这种图标干什么用的;调整好位置和大小,点击导出,选择ICNS格式即可!
我们回到刚刚打包的地方,我们修改基础的指令,在里面加上 -i
pyinstaller --name=your_name -i -w
PyQt5图片资源打包问题
网上有说pyinstaller打包不了图片资源,需要转rcc,转py等等,各种各样的方法(我觉得不实用),但是经我一下午的研究找到了一个最最最简便的方法!看到就是赚到!!!
不管你是页面和逻辑分离还是页面和逻辑写在一起,都可以用
首先在你导入包的下面写这个代码获取路径
这个依赖包没有,就使用pip install pathlib进行下载
import pathlib
folder = (__file__).()
PyQt5中图片一般都是使用label标签导入照片
("")
((f"{folder}/"))
我们把上面的folder填进去,把你的照片名字替换到yourimg里面,这样就解决了打包后由于图片找不到路径而导致加载不出来的问题
最后我们使用pyinstaller工具进行打包,打包时我们要多加一个指令
--add-data:":." 把你的照片名字替换yourimg,然后加上一个冒号,冒号后面是存放路径,我这照片是放在和代码同级的目录下,所以用点来表示当前目录
pyinstaller --name=MySQLSystem --add-data "your_img.png:." -i -w
例如上述点代码,将your_img换成你自己的照片名字,后面的your都换成我们刚刚一步步导出的东西或者py文件名字!
然后就使用指令打包,打包以后会有两个文件夹,一个dist,一个bulid,我们的可执行文件在dist下,双击运行即可!Mac用户找.app运行 ------ win用户找.exe运行
app打包成pkg
Mac将.app打包成pkg,我们使用packages软件进行打包!需要汉化版的私信我!
Mac端下载地址:/Software/Packages/
最后选择编译等着导出就行了!
然后我们双击导出的pkg文件进行一步步的安装就行了,这样我们的程序发给别人也能直接安装使用了!