Python打包

Posted by WT on September 28, 2025

问题

pyinstaller打包部分包缺失,导致打包后的程序无法运行。

全过程

写了一个200多行的代码,实现了从Xlsx文件读取坐标信息,生成最小凸多边形,并计算凸多边形的面积。 写完后想分享给同事,为了省去安装环境的麻烦,尝试Pyinstaller打包,总是打包后提示缺包,然后隐式打包,还是不成功,最后去掉了只打包成一个文件的选项,所有用到的包会在打包完毕后的一个文件夹中,在命令行中运行,看到了错误提示没有安装openpyxl包,最后在电脑中搜索该包,复制了一份放到了打包文件夹中,成功运行。

打包命令

pyinstaller –clean –noconsole –icon=”app.ico” Xlsx2EOO_China.py

参数说明

–clean 有时 PyInstaller 会使用缓存的旧配置,导致问题。可以尝试先清理缓存,再重新打包

–noconsole 使用 –noconsole 参数后,程序会在 GUI 模式下运行,不会弹出控制台窗口。错误和异常信息不会显示在终端中,所以程序会直接关闭,但这样就无法看到错误日志。

–icon=”app.ico” 指定应用程序图标 建议图表大小为128*128或者256*256,我使用了前者。

–name=my_app:指定生成的 .exe 文件名为 my_app

–onefile 参数表示将所有文件打包为一个单独的 .exe 文件,如果运行成果,没有问题,如果打包的exe运行错误,需要去掉这个参数,找找那个包没有打进去,或者进去了不完整。

其他问题

打包后的文件太大了,200行的代码打包后800-1000M,后续将研究如何将包的大小降下来。