Pyinstaller打包的坑
pyinstaller是python windows下打包的神器,但是使用过程中经常会碰到坑,以下是我碰到的坑。
1、打包体积太大
1.1在虚拟环境下搭建干净的环境
打开cmd 输入以下命令创建一个虚拟环境。
#建立虚拟环境
pipenv install
#进入虚拟环境
pipenv shell
#安装模块
pip install 你py文件里用到的模块
#打包的模块也要安装
pip install pyinstaller
#开始打包
pyinstaller -Fw
1.2把不必要的库去掉
记得我有次做一个数据去重的功能,用了pandas的库,结果打包起来将其他没有用到的库也打包进来了,后面一查,发现pandas、Numpy等多个库会相互关联,在打包的时候尽管没用到,打包也要算进来。(特别是numpy和pandas库及其的大)
本来打包下来一个简单信息写入excel并去重的小程序,硬是打包成了700m的执行文件,后来去重的功能我不用pandas写,立马到了11m,小的非常明显。
2、直接执行py文件可以运行,打包后无法执行
这个问题我查了蛮久的,后面在知乎上找到了解决方案。先到/build/name/warnname.txt的报错里看,发现了n多的missing module,想想也不可能缺失那么多模块。