本文主要分为两部分:一是如何将工程文件打包成exe? 二是如何将打包好的exe制作成安装包?除此之外,本篇文章还将介绍实战过程中遇到的问题及相应解决方法。
本项目的实验环境和工具如下:
Python 3.6.5 (64-bit), PyInstaller 3.5, nullsoft scriptable install system 3.02.1, VNISEdit.exe
(1)首先展示本文所用到的工程文件层次结构:
其中,main是主函数文件。
(2)生成主函数文件对应的SPEC文件,生成SPEC文件的常用方法如下所示;
E:\18\project>pyi-makespec main.py
spec的主要内容如下所示:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py','Ui_Func.py','function.py'],
pathex=['E:\\18\\project'],
binaries=[],
datas=[('E:\\18\\project\\image','image'),('E:\\18\\project\\pysphere','pysphere')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,icon='E:\\18\\project\\image\\udbs.ico')
上述代码相关解释如下所示:
(3) 开始执行打包操作
首先,进入至工程所在文件,使用PyInstaller工具进行打包,具体步骤及相应结果如下所示:
C:\Users\despacito>e:
E:\>cd 18\project
E:\18\project>pyinstaller -D main.spec -i image\0108.ico -w
183 INFO: PyInstaller: 3.5
184 INFO: Python: 3.6.5
185 INFO: Platform: Windows-10-10.0.18362-SP0
194 INFO: UPX is not available
197 INFO: Extending PYTHONPATH with paths
['E:\\18\\project', 'E:\\18\\project', 'E:\\18\\project', 'E:\\17\\project']
197 INFO: checking Analysis
197 INFO: Building Analysis because Analysis-00.toc is non existent
.......
65142 INFO: Updating resource type 24 name 1 language 0
65147 INFO: Appending archive to EXE E:\18\project\dist\main.exe
65189 INFO: Building EXE from EXE-00.toc completed successfully.
常见的pyinstaller的命令参数如下所示:
至此,可观察到当前工程文件夹中多了build和dist目录,dist目录中包含了生成的exe文件。此时,如果直接双击该exe可能会出现如下问题:
出现该问题的原因在于该exe和数据文件不在同一路径下,而本项目用到的数据文件为’E:\17\project\image’,‘E:\17\project\pysphere’。因此解决方法是:将该exe放置在和数据文件的同一路径’E:\17\project’下。ok,登陆界面出来啦。
那么,问题来了,如何让 user(只有一个exe的拥有者)正常使用该应用?并且使得该应用的体验者感觉更加正式和规范?此时,就需要将该exe制作成一个安装程序,user 需先经过安装,再点击应用图标进行正常使用。
本项目用到的安装包制作工具为NSIS VNISEdit编译器。VNISEdit编辑器是一款基于NSIS脚本下的代码编程工具。使用该工具时需要注意以下几点:
即需将路径选项下的编译器和帮助条目更换成自己电脑本地的相关文件,而这两个文件均为NSIS文件夹压缩器下自带的。点击“确定”配置步即完成。
紧接着开始制作,具体步骤如下:
点击“文件”,选择新建脚本向导,具体如下图所示:
此时进入如下界面:
点击“下一步”,进行安装包的相关选项设置;
点击“下一步”,该页面选项均为默认;
进入应用程序的目录与授权信息设置,该页面需要修改授权文件,LICENSE.TXT文件在VNISEdit编辑器目录中。
按照以下图片内容进行相关设置。
最终导入的所有文件如下所示:
该页面均为默认项。
该页面也是默认项;
进行解除安装程序的设置,可修改解除安装程序图标;
配置结束可显示如下界面:
至此,制作安装包已经完成,进入相应目录下查看,如图:
双击开始安装即可。