找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5151

积分

0

好友

701

主题
发表于 5 小时前 | 查看: 5| 回复: 0

说实话,每次把我写好的Python小工具发给非技术朋友,对方一句“双击咋没反应?”我就知道——完了,又得解释“你要先装Python,还要装依赖包”。一来二去,对方头大,我也心累。直到我遇到了Pynsist,这玩意儿简直就是救星。

什么是Pynsist?

简单说,Pynsist是一个能把你的Python程序打包成Windows安装程序的工具。用户拿到后双击安装,就跟装QQ、微信一样,完事直接点图标运行——他们根本不需要知道Python是啥

你可能会说:“PyInstaller不也能打包成exe吗?”对,但Pynsist的思路不一样。它不是把代码和Python解释器揉成一个巨型exe,而是把Python、你的代码、依赖包全部塞进一个标准的NSIS安装包里。装完后,桌面上就有个快捷方式,点开就能跑。个人感觉这种方式更“正规”,而且更新某个依赖文件也更灵活。

快速上手,三分钟搞定

安装Pynsist之前,你需要先装一个叫NSIS的工具(Nullsoft Scriptable Install System,别怕,就是安装包制作器)。装好之后,命令行里敲:

pip install pynsist

然后写一个配置文件,比如叫 installer.cfg。举个例子,假设你写了个叫“我的计算器”的程序,入口是 calculator.py 里的 main 函数,配置文件长这样:

小节 内容 说明
[Application] name=我的计算器
version=1.0
entry_point=calculator:main
应用名称、版本号、启动命令
[Python] version=3.6.3 要捆绑的Python版本
[Include] pypi_wheels = requests==2.18.4
     beautifulsoup4==4.6.0
依赖包(必须是有wheel的)
files LICENSE
data/
额外需要打包的文件或文件夹

写好之后,运行:

pynsist installer.cfg

等几秒钟,build/nsis/ 目录下就会蹦出一个 MyAppInstaller.exe。发给朋友,双击,安装,搞定。详细的配置说明在官方文档中都有,上手很简单。

一个小坑,你得知道

依赖包必须要有wheel文件。什么意思?比如你用了 numpypandas,它们默认不提供wheel(至少旧版本这样),Pynsist就直接报错。知道为什么吗?因为Pynsist依赖PyPI上预编译的wheel包来嵌入,没法从源码给你现编一个。解决办法有两个:要么自己去找别人编译好的wheel,要么换一个纯Python的替代库。我第一次用的时候就卡在这儿,折腾了半天才明白——别像我一样踩坑。

另外,Pynsist 2.7要求你的Python版本在3.6以上。如果你还在用Python 2.7,那得找1.x的老版本,不过还是赶紧升级吧,别守着了。

适合谁用?

  • 你写了个数据分析小工具,要给财务同事用
  • 你做了个GUI应用(用PyQt、Tkinter都行),想发给客户试玩
  • 你烦透了跟每个人解释“pip install xxx”
  • 甚至你只是想把自己写的脚本包装得正式一点,发给面试官也体面

反正我自己的那个小工具,之前一直羞于出手,用Pynsist打了个安装包之后,感觉瞬间“产品化”了。

最后唠叨两句

Pynsist不是什么大而全的打包神器,它解决的就是把Python程序发给Windows普通用户这个具体痛点。不复杂,但真管用。如果你也受够了那些反人类的打包流程,不妨试试它。

项目地址: https://github.com/takluyver/pynsist




上一篇:CTO扎堆辞职写代码:AI时代硅谷的“反向跳槽”潮与职业规则重置
下一篇:AI 赋能零代码实践:用 Flet 与 Python 写一个极简音乐播放器
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-5 22:27 , Processed in 0.648373 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表