前言
对于做网站的我来说,有一个好用的能管理网站的图片的工具确实很实用,但是网络上比较流行的 PicGo 不能从 github 网站上读取图片,所以就是在下载 PicGo 之后是无法使用它读取到 github 上之前上传的图片的,而且我用的时候老是上传失败,所以就自己利用 PyQt 做了一个软件,用以实现这些功能,并且可以对 github 上的图床进行管理。写完测试完成之后,又想把这东西打包成安装包,那之后的使用就很方便了,所以就有了此文章
感兴趣的可以看看这个软件 GitPic
将 PyQt 项目打包为可执行文件
可以利用可视化的工具,Auto-py-to-exe,实际上也是一个基于 Pyinstaller 的工具,但是它有 Gui 界面,能更方便的打包
安装
在终端输入
1 pip install auto-py-to-exe
安装完成之后,就可以在终端中输入 auto-py-to-exe.exe
打开软件
打包流程
软件如图所示
基本上只需要设置上述的几个选项
Script Location:选择脚本文件的位置,只需要选择一个脚本文件,这个脚本文件需要包含 python
的入口函数,即 if __name__ == "__main__":
Onefile:选择打包的结果文件是单个文件还是文件夹
One File
打包之后生成一个该程序的可执行文件
One Directory
打包之后除了生成 .exe
文件之外还会生成一个文件夹
ConSole Window:打包生成的软件是否是基于终端的软件,一般选择隐藏终端
Icon:软件图标
Additional Files:额外文件,可以选择文件或者文件夹,可以将软件所用到的图片、字体等文件包含进去
设置完成这几个选项之后就可以打包了,打包结果一般会在当前终端的目录下生成一个 output 文件夹,打包结果都被存放在其中
但是需要注意的是,如果有用到额外文件的话,不论上述的 Onefile 选项选择哪个都会有问题。一般在程序中使用的文件都是其相对路径,所以需要将对应的文件也放到其正确的相对路径下,例如在代码中所用到图片的路径为 ./img/xxx.png
,那么就需要将 img
文件夹放在生成的可执行文件的同级目录下,之后软件即可使用
将可执行文件打包为安装包
在这里使用 Inno Setup 软件来将可执行文件打包为安装包
安装
可以从官网 上获取最新版本下载安装
创建 Inno Setup 脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! [Setup ] ; 软件名 AppName="GitPic" ; 软件版本号 AppVersion="1.0.2" ; 设置安装过程中显示的版本号 AppVerName="GitPic 1.0.2" ; 设置发布者名称 AppPublisher="落" ; 发布者网址 AppPublisherURL="https://seashore.top" ; 默认安装路径 DefaultDirName={autopf}/GitPic ; 输出的文件的路径 OutputDir=setup ; 输出的安装包文件名 OutputBaseFilename=GitPic_setup ; 是否启用实体(solid)压缩,将所有文件压缩为单个压缩块 SolidCompression=yes ; 程序和功能中的icon图标 SetupIconFile=./gitpic_128x128.ico UninstallDisplayIcon=./gitpic_128x128.ico ; 需要的外部文件,并且定义安装之后在软件的相对位置 [Files ] Source: "output/*" ; DestDir: {app}; Flags: ignoreversion recursesubdirs Source: "fonts/*" ; DestDir: {app}/fonts; Flags: ignoreversion recursesubdirs Source: "img/*" ; DestDir: {app}/img; Flags: ignoreversion recursesubdirs [Languages ] ; 设置安装程序的语言为英文 Name: "english" ; MessagesFile: "compiler:Default.isl" ; 用户自定义任务 [Tasks ] Name: "desktopicon" ; Description: "{cm:CreateDesktopIcon}" ; GroupDescription: "{cm:AdditionalIcons}" ; Flags: exclusive [Icons ] Name: "{autoprograms}\GitPic.exe" ; Filename: "{app}\GitPic.exe" Name: "{autodesktop}\GitPic.exe" ; Filename: "{app}\GitPic.exe" ; Tasks: desktopicon ; 卸载之后删除安装目录 [Code ] procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var InstallDir: String; begin InstallDir := ExpandConstant('{app}' ); case CurUninstallStep of usUninstall: begin if DirExists(InstallDir) then DelTree(InstallDir, True, True, True); RemoveDir(ExtractFileDir(InstallDir)); end ; end ; end ;
生成安装包
在 Inno Setup 软件中打卡该文件,然后点击右上角的编译即可生成安装包