在实际生活中,每个人都是通过使用安装包的方式对软件进行安装和卸载,这样才能让每个人都不需要懂代码就能使用我们编写的软件。 那么python编写的软件应该怎样实现这个过程尼? 下面就进行详细的讲解。
一、使用python代码生成可执行程序
在windows下就是要将其生成.exe文件。
首先安装:
pip install pyinstaller
pyinstaller -v
pyinstaller参数作用
-F 表示生成单个可执行文件
-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧
-c –console, –nowindowed 使用控制台,无界面(默认)
-p 表示你自己自定义需要加载的类路径,一般情况下用不到
-i 表示可执行文件的图标
其他参数,可以通过pyinstaller --help查看
开始打包
进入python需要打包的脚本所在目录,然后执行下面的命令即可:
python -F nhdz.py -i favicon.ico -w
执行过程如下图所示:
打包结果
打包完成后,进入到当前目录下,会发现多了__pycache__、build、dist、nhdz.spec这四个文件夹或者文件,其中打包好的exe应用在dist目录下面,进入即可看到,可以把他拷贝到其他地方直接使用,如下图所示,是打包完成后的目录:
执行exe应用
因为是exe应用,是可执行文件了,所以直接双击运行即可.
现在生成了可执行程序,但是还不是我们最终需要的文件,这种只是运行,还不能实现在电脑上安装和卸载,还算不上是一个安装包。
下一步就是要把生成的可执行程序变成安装包。
二、生成安装包
在这里就需要一个叫NSIS的软件,NSIS下载。
下面介绍NSIS的使用方式。
启动NSIS程序主界面,选择“可视化脚本编辑器(VNISEdit)”菜单,开始制作自己的安装包。
选择“使用脚本向导创建新的脚本文件”,确定
进步脚本向导,下一步
第一步,这里填写应用程序的一些基本信息,这里的运用程序名称可以更改,中文名也支持,下一步
第二步,这里是选择安装包的图标,生成的可执行程序名字,程序语言等,使用默认的就可以,不需要修改,也可以修改为自己喜欢的图标和可执行程序名字,程序语言不要修改。
第三步,选择一些安装时候的效果,可选可不选,下一步
第四步,指定应用程序的默认目录,授权文件最好空着,默认会有个路径,把它删掉空着就行,不然可能会报错失败,下一步
第五步,选择要打包的文件,这一步就是把刚刚python生成的可执行程序加进来,如果可执行程序还依赖一些外部的文件或者文件夹,那么也要加进来,可以看到左边那个是添加文件,右边是添加文件夹,添加文件夹的时候要把包含子目录勾上,具体用法,试一次就知道了。这一步很关键,慢点来,弄懂了再继续下一步,下一步
第六步,快捷方式的一些设置,下一步
第七步,设置安装程序之后要运行的内容,下一步
第八步,卸载信息设置,这一步就是在安装程序的时候会生成一个卸载文件,方便卸载软件,下一步
完成向导,勾选”保存脚本“,以及”转换文件路径到相对路径“,这一步会把生成安装包的脚本保存下来,同时会要求设置保存路径,最后生成的安装包会和脚本保存在一个路径下。
这时就可以看到通过向导生成的脚本,可以在这里继续修改脚本
修改完脚本以后,点击菜单”NSIS“-》“编译并运行”,编译成功后,会在脚本文件路径下生成一个exe文件,安装包制作完成,点击这个exe文件即可完成安装!
1.问:在安装的过程中,如何执行BAT文件?
答:按照上面向导生成的脚本,有这么一段脚本,注意我用红色标注的内容,红色的部分是在文件复制完成以后执行BAT文件的脚本,注意操作步骤,复制文件结束后,再执行,卸载的时候执行BAT文件顺序相反
Section "MainSection" SEC01
SetOutPath "$INSTDIR\*.*"
SetOverwrite ifnewer
File /r "D:\Program Files\HyperSnap6\*.*"
ExecWait "$INSTDIR\install.bat"
SectionEnd
2.问:如果修改安装文件和卸载文件的图标
答:修改这部分脚本即可
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
nsis自带的有两个图标,我自己感觉稍微能好看一点点(汗,虽然还是很丑,好吧,凑合着用),修改后的
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\Orange-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\Orange-uninstall.ico"
3.问:怎么让安装程序以管理员权限运行
答:红色标注的内容,是在原有代码的基础上增加的代码,表示以管理员权限执行安装程序
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "Setup.exe"
InstallDir "$PROGRAMFILES\UKey"
ShowInstDetails show
ShowUnInstDetails show
RequestExecutionLevel admin
BrandingText " "
参考文献:Python如何生成windows可执行的exe文件
使用NSIS制作安装包
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)