我们使用Python可以编写很多提高工作和学习效率的小工具,在编写完之后,如果我们想将其分享给更多的人使用,那么最便捷的方法就是将其打包为可执行程序。
在Windows环境下,我们使用Pyinstaller这个第三方模块可以快速将Python程序打包为EXE格式后缀的可执行程序。但是其打包出来的要么是一个单独的EXE文件,要么是一个文件夹。在某些的场合,可能显得不是很正式,那么我们可能需要为程序制作一个安装程序。
下面,我们就来介绍一下在Windows环境下,对Python文件进行打包和制作安装包文件的方法。
文章首发州的先生博客:
使用NSIS制作Python程序安装包 - 州的先生zmister.com![8698c45f98df3a5ca80d183acbcaf8c8.png](https://i-blog.csdnimg.cn/blog_migrate/e7c793d1859fdcdce7ea92cf0b3da286.jpeg)
示例Python程序为文章《实战 | 如何用Python实现一个图形界面的文件内容搜索程序?》中所介绍的Python文件内容搜索器。
![24413d176e92656066068c10a94622c3.png](https://i-blog.csdnimg.cn/blog_migrate/28416e122903adc9e5cfc67cbf5a0b5d.jpeg)
一、使用Pyinstaller打包Python程序
将Python文件打包为可执行文件,最好的方法莫过于使用第三方库——Pyinstaller。它支持将Python文件打包为单个的EXE文件或者是一个文件夹。
如何将Python文件打包成了单个的EXE文件,那么也就不需要再制作说明安装程序了,直接双击运行即可。但是打包出来的单个EXE文件体积可能会有点大,所以我们一般会选择将其打包为一个文件夹。
其命令如下所示:
pyinstaller -w xxx.py
我们使用上述命令对Python文件搜索器的py文件进行打包:
![36b37f03d7e0212b04d8c1686f827ade.gif](https://i-blog.csdnimg.cn/blog_migrate/5a558c6aa7f0428b7410f30136246f9c.gif)
打包完成后,我们可以在dist文件夹下看到生成的程序文件夹,里面包含了运行我们的Python程序所需要的所有文件和启动文件,运行main.exe文件,可以看到我们使用PyQt5创建的图形界面窗口就显示出来了。
![470d4753a96f0e2423959a893ab4ce82.png](https://i-blog.csdnimg.cn/blog_migrate/e91ae97ca6ce4e2d9472de17fb402861.jpeg)
这样我们就可以对其进行安装包的制作了。有两种方法:
- 文件夹压缩器:简单、快速,同时也简陋很多;
- VNISEdit编译器,复杂、功能强大;
下面一一进行介绍。
二、使用NSIS文件夹压缩器
NSIS是一个小巧的文件夹压缩器,其与ZIP或RAR等压缩器不一样的地方在于其能够生成一个NSIS经典界面的自解压文件。
![86d8d59561e8f4feab55b7ff48ec3933.png](https://i-blog.csdnimg.cn/blog_migrate/78f384c2d793585213fddeb851657ea7.jpeg)
只需要简单的填写几个表单,我们就能得到一个EXE自解压文件安装包。下面是我们填写的表单:
![3ffb3c20194147cd993bcbaeaa4e537c.png](https://i-blog.csdnimg.cn/blog_migrate/d3b63c6dec24dab93164ccced3051d9e.jpeg)
我们设置了需要压缩的文件夹,指定了解压的路径为桌面,设置的快捷方式及其指向的文件等等。
点击【编译】按钮,程序就会自动对文件夹进行压缩:
![66a9f74df5b181c9d3b503e1775f6add.png](https://i-blog.csdnimg.cn/blog_migrate/f29da95a8f01f943a45acaa7fad7971f.jpeg)
最后得到了一个名为main.exe的自解压文件:
![551e696f2a7dedf9fc94111155ce3ebe.png](https://i-blog.csdnimg.cn/blog_migrate/1b516f076bed6e43fdb6061680bc20e5.jpeg)
运行这个EXE文件,程序就会自动解压压缩的文件夹并在桌面上创建一个快捷方式:
![90073bc3b23a73f210c33948c6f1da93.gif](https://i-blog.csdnimg.cn/blog_migrate/21d53a6f977b662c2fbff1bda2959ca1.gif)
这样,我们借助NSIS文件压缩器制作完成了Python程序的安装包。
三、使用NSIS VNISEdit编译器
上面使用NSIS文件夹压缩器制作的安装包操作虽然很简单,但是生成的安装包却显得不那么正规,如果我们需要像很多正式软件安装包一样,有很多确认步骤的,则需要使用到VNISEdit编译器。
首先,打开VNISEdit编译器,从【文件】中选择【新建脚本:向导】
![62986ff08cc37c00168e7d67a08e717d.png](https://i-blog.csdnimg.cn/blog_migrate/139f3147b2c0e12b9c5ba958949d6073.jpeg)
进入到NSIS脚本向导中:
![61b0638c6c6e7a2ca9cde86664ffef60.png](https://i-blog.csdnimg.cn/blog_migrate/b15b66f92abd542221e2c9efd0372145.jpeg)
点击【下一步】,填写应用程序的基础信息:
![57a474d749d95300a64c52fa8339e3ab.png](https://i-blog.csdnimg.cn/blog_migrate/0963f0a40d3be612dc6c6a9380b8e5fc.jpeg)
继续【下一步】,知道安装程序的选项,基本上默认即可:
![12f2471ce91a629c82b69833300d2a7a.png](https://i-blog.csdnimg.cn/blog_migrate/ca7e32a7590e6360400f6b65bd7931c2.jpeg)
背景窗口基本上可以不设置:
![899cc67332bc46480c12f902939a6e6a.png](https://i-blog.csdnimg.cn/blog_migrate/5daa25a37c0fd8f69f4e62cdc6485f26.jpeg)
然后设置应用程序的目录的授权信息:
![16730cffb40debd0adf7e9f53498c1b3.png](https://i-blog.csdnimg.cn/blog_migrate/ce6e1170597d10b7f1005dd27d2e065d.jpeg)
继续指定应用程序文件,在这里我们添加程序所在的整个目录:
![194c80c86e2441fbd8201249d991daaa.png](https://i-blog.csdnimg.cn/blog_migrate/4f7ce25de193759547ac966c5c5ae9f7.jpeg)
接着设置应用程序的图标信息等:
![4e9575c1a07c6498e174fa4c0a7e7a5f.png](https://i-blog.csdnimg.cn/blog_migrate/7b3c5a8c6b67248643291d2fd122665e.jpeg)
第7步也可以忽略不设置,在第8步设置卸载程序的相关信息:
![02b7ccfdcf11b4506eac99dcd9c5c6f4.png](https://i-blog.csdnimg.cn/blog_migrate/d48059724588c8898930ad9999603af2.jpeg)
最后保存并编译脚本,设置一个脚本名称后,会自动进行编译:
![a6f8c89b625eb725342b868b11ae032f.png](https://i-blog.csdnimg.cn/blog_migrate/636c286b7d963bdc8f8353e1215d4bc7.jpeg)
最后,我们得到了一个名为setup.exe的可执行安装文件:
![c286fbf364887905eab9bbb73fbfecb1.png](https://i-blog.csdnimg.cn/blog_migrate/d8f9f6579ae6df1794604bd92c6d6757.jpeg)
运行这个文件,我们就可以对程序进行安装了:
![1071215e69caffaf624decaee18bd0c4.gif](https://i-blog.csdnimg.cn/blog_migrate/3353c6bb740dc4d320c5cf801fde3beb.gif)
同时,其还提供了卸载工具:
![8cd3d6c1dd0de83c9dc5be14d521b83c.png](https://i-blog.csdnimg.cn/blog_migrate/54cb9c45d831ab32685c176d1a760a4c.jpeg)
运行uninstall,可以快速卸载安装好的程序:
![5e028599e6e4de8d268068129c8fb70c.gif](https://i-blog.csdnimg.cn/blog_migrate/2b6aee78ac958e05bb1aed60fe34ff2c.gif)
四、最后
以上就是我们使用NSIS对Python打包程序进行Windows安装包制作的两种方法,两种方法各有优势,如何选择,就看自己的需求了。