pycharm如何打包项目:优先用内置pyinstaller插件直接编译
折腾一下午总算摸清pycharm如何打包项目,网上五花八门的教程绕得人头大,乱七八糟的第三方工具、命令行指令看得眼花缭乱,到头来发现绝大多数新手根本没必要跳出软件本身操作。
最开始傻乎乎直接复制别人给的cmd打包命令,手动打开终端输入代码。那时候压根没考虑虚拟环境的问题,项目里装了十多个第三方库,直接全局打包,最后生成的exe文件足足三百多兆,打开速度慢到离谱,双击之后半分钟才弹出界面,甚至偶尔会直接闪退。
更离谱的是,删掉多余依赖重新操作后,编译出来的程序换台电脑就运行失败,弹窗提示缺少各类模块。排查半天,才发现是命令行打包时,没办法精准识别项目内专属的虚拟环境,默认抓取了电脑全局所有python库,要么冗余臃肿,要么适配不全,完全就是无用功。
别瞎折腾命令行了。
PyCharm本身就内置了pyinstaller打包插件,只要项目配置过虚拟环境,一键就能锁定当前项目所有依赖,打包出来的文件适配性远超手动输指令。
打开正在编辑的Python项目,顶部导航栏找到Tools选项,点开之后能直接看到PyInstaller这个选项,很多人从来没点开过这个子菜单,白白浪费时间去学复杂的命令行语法。
点开插件面板后,能看到两个核心输入框。第一个是Script,直接选中项目的启动主py文件,也就是你平时双击运行整个程序的那个文件,选错文件打包出来的程序百分百无法启动。第二个是Arguments参数栏,这里就是微调打包效果的关键。
平常打包我一般只加两个参数,-w和-F。-F代表整合所有文件,最终只输出单个exe可执行文件,方便直接转发给别人使用;-w的作用是屏蔽运行时的黑色命令弹窗,没有这个参数,每次打开程序都会附带一个多余的黑框,观感特别差。
然后直接点击下方的Run按钮就行。整个编译过程全程自动化,软件会自动读取项目虚拟环境内所有已安装的依赖包,自动匹配版本,不需要手动追加任何库文件。
等待三到十分钟不等,耗时长短主要看项目文件体量和电脑配置。编译完成后,在项目根目录的dist文件夹里,就能找到打包好的exe程序。
很多人容易忽略一个小细节,静态资源文件。图片、txt文档、配置json这类非py格式的文件,插件没办法自动打包进去。之前吃过这个亏,打包完程序能正常打开,但所有图片素材全部空白,功能相关的配置文件直接缺失。
遇到这种情况不用重新打包。直接进入dist文件夹,把程序需要的静态文件夹,原样复制到exe的同级目录里就行,操作简单,比反复重新编译省事太多。
还有个小毛病,偶尔部分低版本PyCharm,调用内置插件会报权限错误。不用去修改系统权限,也不用重装软件。直接在File的setting里,重新卸载再安装一遍pyinstaller,重启PyCharm就能恢复正常。
现在基本上所有本地编写的小程序,全部都是用这个方式打包。不用记忆晦涩的命令代码,也不用纠结环境冲突,全程依托项目本身的环境配置,容错率高的多。
晚上收拾桌面的时候,删掉了之前存的十几条打包命令备忘录,突然觉得之前花几个小时试错的自己,纯粹是在做无用功。